网站建设资讯

NEWS

网站建设资讯

java两个线程运行代码 java两个线程交替输出

java中两个线程同时运行,如何在一个线程抛出异常时将两个线程同时中断或结束,而不运行之后的代码块

没有太理想的方法  比较笨的办法是自己重新封装一次线程类 如下边的方法就是在run方法的最后一行修改一次状态,如果执行到最后那状态就会修改,如果出现异常执行不到最后状态就不修改

成都创新互联公司是一家专业提供广灵企业网站建设,专注与网站制作、成都网站建设HTML5、小程序制作等业务。10年已为广灵众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

public class Dfdsfasdfasdfa {

public static void main(String[] args){

MyTask t1 = new MyTask("1");

MyTask t2 = new MyTask("s");

t1.start();

t2.start();

try{

t1.join();

t2.join();

if(t1.getIsEnd()t2.getIsEnd()){

System.out.println("zzzz");

}

}catch(InterruptedException e) {

}

}

}

class MyTask extends Thread {

private String s=null;

private boolean isEnd=false;

public MyTask(String s){

this.s=s;

}

public void run() {

System.out.println(Integer.parseInt(s));

System.out.println(s);

isEnd=true;

}

public boolean getIsEnd(){

return isEnd;

}

}

java 两个线程执行不同的方法

首先你这说法似乎有点错误,不知道你是否把C#里面的线程用法用到java上面了。

首先,java里面的线程,只是执行一个方法,那个方法名为 public void run(){}

再次,在java里面,使用线程是要继承Thread类(重写run方法),或者是实现Runnable接口(实现run方法)

然后,建立一个线程,是

1、继承线程Thread类: MyThread thread=new MyThread();

启动:thread.start();这样就启动一个线程,但它只是执行run方法里面的东西

2、实现Runnable接口的:MyRunnableThread thread=new MyRunnableThread();

启动: Thread runThread=new Thread(thread); runThread.start();(或者直接写为:new Thread(thread).start() )

最后,在这里你应该可以看到了,这是一个类线程,不是一个方法线程。如果你要执行多个方法,就要多写和创建启动多个线程类

java多线程共同操作同一个队列,怎么实现?

具体代码如下:

以下是两个线程:

import java.util.*;

public class Thread_List_Operation {

//假设有这么一个队列

static List list = new LinkedList();

public static void main(String[] args) {

Thread t;

t = new Thread(new T1());

t.start();

t = new Thread(new T2());

t.start();

}

}

//线程T1,用来给list添加新元素

class T1 implements Runnable{

void getElemt(Object o){

Thread_List_Operation.list.add(o);

System.out.println(Thread.currentThread().getName() + "为队列添加了一个元素");

}

@Override

public void run() {

for (int i = 0; i 10; i++) {

getElemt(new Integer(1));

}

}

}

//线程T2,用来给list添加新元素

class T2 implements Runnable{

void getElemt(Object o){

Thread_List_Operation.list.add(o);

System.out.println(Thread.currentThread().getName() + "为队列添加了一个元素");

}

@Override

public void run() {

for (int i = 0; i 10; i++) {

getElemt(new Integer(1));

}

}

}

//结果(乱序)

Thread-0为队列添加了一个元素

Thread-1为队列添加了一个元素

Thread-0为队列添加了一个元素

Thread-1为队列添加了一个元素

Thread-1为队列添加了一个元素

Thread-1为队列添加了一个元素

Thread-1为队列添加了一个元素

Thread-1为队列添加了一个元素

Thread-1为队列添加了一个元素

Thread-1为队列添加了一个元素

Thread-1为队列添加了一个元素

Thread-1为队列添加了一个元素

Thread-0为队列添加了一个元素

Thread-0为队列添加了一个元素

Thread-0为队列添加了一个元素

Thread-0为队列添加了一个元素

Thread-0为队列添加了一个元素

Thread-0为队列添加了一个元素

Thread-0为队列添加了一个元素

Thread-0为队列添加了一个元素


当前文章:java两个线程运行代码 java两个线程交替输出
本文来源:http://cdweb.net/article/doiscgi.html