首页 > 代码库 > 两个线程,交替执行
两个线程,交替执行
import java.util.*; public class Main { static ArrayList<Integer> list=new ArrayList<Integer>(); private static Object lock=new Object(); private static int a=1; private static int b=1; static boolean bool=true; public static void main(String[] args) { Thread t1=new Thread(){ public void run() { for(int i=0;i<10;i++) { synchronized(lock) { a*=3; list.add(a); bool=false; lock.notify();//唤醒一个线程 try { lock.wait();//挂起该线程 } catch(InterruptedException e) { e.printStackTrace(); } } } } }; Thread t2=new Thread(){ public void run() { for(int i=0;i<10;i++) { synchronized(lock){ if(bool) { try{ lock.wait(); } catch(InterruptedException e) { e.printStackTrace(); } } b*=7; list.add(b); bool=true; lock.notifyAll();//唤醒所有等待线程(同一个锁上) } } } }; t1.start(); t2.start(); try { t1.join(); t1.join(); } catch(InterruptedException e) { e.printStackTrace(); } for(int i=0;i<list.size();i++) { System.out.println(list.get(i)); } } }
两个线程,交替执行
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。