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://azwzsj.com/article/doiscgi.html