线程间互斥
2016-01-16 18:17
274 查看
package com.ygl;
public class Business {
//主线程、子线程关联的代码归为一类
public synchronized void sub(int i){
for(int j=0;j<10;j++){
System.out.println("sub thread"+i+"========"+j);
}
}
public synchronized void main(int i){
for(int j=0;j<10;j++){
System.out.println("main thread"+i+"========"+j);
}
}
}
//********************************
package com.ygl;
public class CommunicationRunnable implements Runnable{
private Business business;
public CommunicationRunnable() {
}
public CommunicationRunnable(Business business) {
this.business=business;
}
@Override
public void run() {
for(int i=1;i<=50;i++){
business.sub(i);
}
}
}
//*************************************************
package com.ygl;
public class TraditionalThreadCommunication {
public static void main(String[] args) {
Business business=new Business();
CommunicationRunnable communicationRunnable=new CommunicationRunnable(business);
Thread thread=new Thread(communicationRunnable);
thread.start();
for(int i=1;i<=50;i++){
business.main(i);
}
}
}
public class Business {
//主线程、子线程关联的代码归为一类
public synchronized void sub(int i){
for(int j=0;j<10;j++){
System.out.println("sub thread"+i+"========"+j);
}
}
public synchronized void main(int i){
for(int j=0;j<10;j++){
System.out.println("main thread"+i+"========"+j);
}
}
}
//********************************
package com.ygl;
public class CommunicationRunnable implements Runnable{
private Business business;
public CommunicationRunnable() {
}
public CommunicationRunnable(Business business) {
this.business=business;
}
@Override
public void run() {
for(int i=1;i<=50;i++){
business.sub(i);
}
}
}
//*************************************************
package com.ygl;
public class TraditionalThreadCommunication {
public static void main(String[] args) {
Business business=new Business();
CommunicationRunnable communicationRunnable=new CommunicationRunnable(business);
Thread thread=new Thread(communicationRunnable);
thread.start();
for(int i=1;i<=50;i++){
business.main(i);
}
}
}
相关文章推荐
- 蓝懿IOS/UINavigationController
- 手把手教你把Vim改装成一个IDE编程环境(图文)
- FPGA开发中的脚本语言
- C++编程中break语句和continue语句的学习教程
- 2. Add Two Numbers 给定的两个链表是逆序排列的,相加后放在一个新的链表里边
- linux运维实战练习案例-2015年12月20日-12月31日
- java数组的理解--学习总结
- TableView遇到的问题
- 编程修养
- WINDOWS下的目录映射工具(微软官方工具)
- 水题
- UESTC-- 1263
- 迪米特法则学习笔记
- 数据结构_7:图算法 :图的最小生成树
- Dplasma调度方式—— DAGUE_SCHEDULER_AP(Absolute priorities)
- 专业课第二章知识总结
- 第1周:指针与字符串
- JavaSE-可变个数的形参
- Android同一设备DPI数值大小与显示大小的关系
- 寒假培训