当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > JAVA中线程的同步(一)

JAVA中线程的同步(一) 时间:2018-09-25      来源:未知

java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,从而保证了该变量的唯一性和准确性。

Java中线程的同步,咱们介绍3种常见的方法,第一种使用同步代码块。

/**

* 线程间通讯,多个线程处理同一个资源,但是任务不一样

* @author xj

*

*/

/*

* 定义资源

*/

class Resource{

String name;

String sex;

}

/*

* input 输入操作

*/

class Input implements Runnable{

private Resource r;

public Input(Resource r) {

this.r = r;

}

public void run(){

int x = 0;

while(true){

synchronized (r) {

if(x == 0){

r.name = "张三";

r.sex = "男";

}

else {

r.name = "Lily";

r.sex = "女";

}

x = (x + 1)%2;

}

}

}

}

/**

* 输出

* @author xj

*

*/

class Output implements Runnable{

Resource r;

public Output(Resource r) {

this.r = r;

}

public void run(){

while(true){

synchronized (r) {

System.out.println(r.name + "...." + r.sex);

}

}

}

}

public class ResourceDemon01 {

public static void main(String[] args) {

// 创建资源

Resource r = new Resource();

// 创建任务

Input in = new Input(r);

Output out = new Output(r);

//创建线程,执行路径

Thread t1 = new Thread(in);

Thread t2 = new Thread(out);

//线程启动

t1.start();

t2.start();

}

}

上一篇:Java中线程的通信(二)

下一篇:Java中线程的同步(二)

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部