讲师博文
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中线程的同步(二)

400-611-6270

Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5京公海网安备11010802025203号