线程通讯(一)

📅 2026/7/28 20:03:56
线程通讯(一)
##底层业务线数据隔离要求子线程循环跑30次暂停然后跑到主线程40次接着子线程循环跑30次暂停主线程跑40次如此往复一共交替50次publicclassThreadTest{privatestaticLock locknewReentrantLock();privatestaticCondition chil_conditionlock.newCondition();privatestaticCondition main_conditionlock.newCondition();privatevolatilestaticintsign0;publicstaticvoidmain(String[]args)throwsException{newThread(()-{while(true){for(inti0;i50;i){lock.lock();try{if(sign!0){chil_condition.await();}for(intj0;j30;j){try{Thread.sleep(40);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println(String.format(子线程运行第%d轮第%d次,i,j));}sign1;main_condition.signal();}catch(InterruptedExceptione){e.printStackTrace();}finally{lock.unlock();}}}}).start();while(true){for(inti0;i50;i){lock.lock();if(sign0){main_condition.await();}for(intj0;j40;j){Thread.sleep(40);System.out.println(String.format(主线程运行第%d轮第%d次,i,j));}sign0;chil_condition.signal();lock.unlock();}}}}