java--多线程调度与控制2
来源:互联网 发布:iapp轰炸机源码 编辑:程序博客网 时间:2024/04/28 02:23
★ wait()方法
当前线程进入对象的wait pool。
★notify()/notifyAll()方法
唤醒对象的wait pool中的一个/所有等待线程。
第一种表示:这种有几率性
public class myThread extends Thread{ private static boolean isWait=true; private int first; private Object obj; public myThread(int first,Object obj){ this.obj=obj; this.first=first; } @Override public void run() { synchronized (obj) { for (int i = first; i <= 100; i += 2) { if(first==1&&i>50&&isWait){ isWait=false; try { obj.wait(); } catch (InterruptedException e) { System.out.println("wake up..."); } } System.out.print(i + " "); } System.out.println(); if(first==2){ obj.notify();//如果是t1先运行,则不会有错,但是t2先运行,则会出现线程监控异常 } } }}
public class client { public static void main(String[] args) { Object obj=new Object(); myThread t1=new myThread(1,obj); myThread t2=new myThread(2,obj); t1.start(); t2.start(); }}
第二种表示:
public class myRun implements Runnable { private boolean isWait=true; @Override public void run() { synchronized (this) { for (int i = 1; i <= 100; i++) { if (i > 50 && isWait) { isWait = false; try { this.wait(); } catch (InterruptedException e) { System.out.println("wake up..."); } } System.out.print(i + " "); } System.out.println(); notify();//只唤醒那些和自己处于同一等待池(被同一对象困住的)的线程之一 } }}
public class client { public static void main(String[] args) { myRun mr=new myRun(); Thread t1=new Thread(mr); Thread t2=new Thread(mr); t1.start(); t2.start(); }}
注意:suspend()、resume()和stop()这几个方法现在已经不提倡使用。
0 0
- java--多线程调度与控制2
- java--多线程调度与控制1
- Java多线程的调度与控制
- java---多线程调度与控制常见方法一览
- Java之多线程加强(多线程调度与控制)
- 进程控制与调度
- 【转载】java多线程调度
- Java多线程调度方法
- (新手)java多线程基础知识——调度与同步
- Java多线程2--线程控制
- 多线程__【Thread类的方法--线程的调度与控制】
- 线程的调度与控制
- (45)Java学习笔记——多线程 / 设置线程 / 线程调度 /线程控制
- JAVA-15-多线程的调度和控制、线程安全、死锁、等待和唤醒
- Java多线程:线程调度Join
- Java多线程调度—优先级
- Java多线程的调度策略
- Java多线程-线程的调度
- vim自动格式化代码
- zabbix_agentd版本兼容性导致item_key不支持的故障诊断
- 【机器学习】HK算法(LMSE算法) LMS算法改进保证线性可分时均方误差标准能够找到线性可分的超平面
- java 实现图片任意角度旋转,及背景透明
- java简易炸金花的实现
- java--多线程调度与控制2
- python使用中的错误总结
- C语言程序设计谭浩强版 十 二
- 欢迎使用CSDN-markdown编辑器
- MySQL-----忘记root密码
- C语言求最小公倍数和最大公约数三种算法
- HDU 3980 Paint Chain
- python 3.4安装numpy过程及失败原因
- Leetcode之Search for a Range