张孝祥java多线程视频笔记----传统线程互斥技术
来源:互联网 发布:算法设计与分析第五章 编辑:程序博客网 时间:2024/05/20 14:18
//子线程循环10次,接着主线程循环100次,接着在子线程循环10次,接着再主线程循环100次
public class SynTest {
public static void main(String[] args) {
final Business b=new Business();
new Thread(
new Runnable(){
@Override
public void run() {
for(int i=1;i<=50;i++){
b.sub();
}
}
}).start();
new Thread(
new Runnable(){
@Override
public void run() {
for(int i=1;i<=50;i++){
b.main();
}
}
}).start();
}
}
class Business {
private boolean flag=true;
public synchronized void sub(){
while(!flag){//用while防止假唤醒
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
for(int j=1;j<=10;j++){
System.out.println("sub thread:"+j);
}
flag=false;
this.notify();
}
public synchronized void main(){
while(flag){
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
for(int j=1;j<=100;j++){
System.out.println("main thread:"+j);
}
flag=true;
this.notify();
}
}
public class SynTest {
public static void main(String[] args) {
final Business b=new Business();
new Thread(
new Runnable(){
@Override
public void run() {
for(int i=1;i<=50;i++){
b.sub();
}
}
}).start();
new Thread(
new Runnable(){
@Override
public void run() {
for(int i=1;i<=50;i++){
b.main();
}
}
}).start();
}
}
class Business {
private boolean flag=true;
public synchronized void sub(){
while(!flag){//用while防止假唤醒
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
for(int j=1;j<=10;j++){
System.out.println("sub thread:"+j);
}
flag=false;
this.notify();
}
public synchronized void main(){
while(flag){
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
for(int j=1;j<=100;j++){
System.out.println("main thread:"+j);
}
flag=true;
this.notify();
}
}
- 张孝祥java多线程视频笔记----传统线程互斥技术
- 多线程03_张孝祥-传统线程互斥技术
- 【张孝祥并发课程笔记】02:传统线程互斥技术
- Java多线程基础(三)Java传统线程互斥技术
- 多线程总结第三篇之传统线程互斥技术
- 传统线程互斥技术
- 传统线程互斥技术
- 【Java多线程与并发库】3.传统线程互斥技术
- 【Java多线程与并发库】3.传统线程互斥技术
- 【Java多线程与并发库】03 传统线程互斥技术 synchronized
- 03_张孝祥_Java多线程_传统线程互斥技术_Synchronized
- Java—传统线程互斥技术synchronized
- Java并发库(三):传统线程互斥技术
- 【java并发】传统线程互斥技术—synchronized
- Java传统线程中的的互斥技术
- 传统线程互斥技术 ------ 实例
- 传统线程互斥技术----实现
- 传统线程互斥技术(三)
- 通过修改linux系统默认的TCP或UDP mem大小解决开发板播放流媒体片源卡顿或马赛克问题
- Paip.断点调试MYSQL存储过程跟函数的解决方案大法
- ICE的5个服务
- JAVA NIO导致JAVA服务端程序无法关闭的奇怪问题
- 博弈论之Nim博弈与sg函数(一)
- 张孝祥java多线程视频笔记----传统线程互斥技术
- ZOJ:3721 Final Exam Arrangement
- HDOJ 2389 - Hopcroft-Carp模板二分图最大匹配
- linux 下的文本处理之“行分割”——cut命令
- 【386w§Anobit推出第二代Genesis固态硬盘】
- Ural 1132. Square Root 二次剩余
- 批量测试服务器端口是否开放
- Windows phone 8 学习笔记
- mysql-5.6.13在windows平台下的安装、使用(图解)