博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程之线程同步(2)
阅读量:4649 次
发布时间:2019-06-09

本文共 1049 字,大约阅读时间需要 3 分钟。

  在线程同步中 当一个方法被标示为synchronize,则其他线程不可同时再访问,但可以访问其他的方法和属性,并且可改变数据。

实例:

package com.exmaple.Thread;

public class Test6 implements Runnable{

/**

* 在线程同步中 当一个方法被标示为synchronize,则其他线程不可同时再访问
* 但可以访问其他的方法和属性,并且可改变数据。
* @param args
*/
static Thread thread;
private static Number num;
public static void main(String[] args) {
// TODO Auto-generated method stub
num=new Number();
Test6 t=new Test6();
Thread t1=new Thread( t);
t1.start();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
num.f2();
}
@Override
public void run() {
// TODO Auto-generated method stub
num.f1();
}

}

class Number {
int i=10;
public synchronized void f1(){
i=100;
try {
Thread .sleep(5000);
} catch (Exception e) {
// TODO: handle exception
}
System.out.println("i="+i);
}
public void f2(){
try {
Thread .sleep(2000);
} catch (Exception e) {
// TODO: handle exception
}
i=200;
}
}

 

说明:在主线程从创建了一个子线程, 子线程执行,i=100,进入睡眠,方法被锁定。同时,主线程执行下面的代码f2(),i被改变 i=200;,子线程睡眠唤醒,输出

转载于:https://www.cnblogs.com/meijing/p/4580538.html

你可能感兴趣的文章
一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(1)--创建和使用可重用工作流...
查看>>
POJ 3624 Charm Bracelet 0-1背包
查看>>
React 使用browserHistory项目访问404问题
查看>>
Atitit 基于dom的游戏引擎
查看>>
Atitit 硬件 软件 的开源工作 差异对比
查看>>
requestAnimationFrame
查看>>
APUE 12.7 取消选项
查看>>
思杰20140522
查看>>
02、MySQL—数据库基本操作
查看>>
H5学习之旅-H5的表单(11)
查看>>
np.random的随机数函数
查看>>
HTML5文件拖拽
查看>>
第一个CUDA程序
查看>>
CentOS 6.9/7通过yum安装指定版本的Redis
查看>>
Android中RelativeLayout各个属性的含义
查看>>
PhoneGap API帮助文档翻译—Capture (采集)
查看>>
微信公众平台开发(45)食物营养及热量查询
查看>>
微信公众平台开发(58)自定义菜单
查看>>
FTP上传下载使用ASCII与binary的区别
查看>>
我的网站,书籍收藏
查看>>