(java编程)请问java中synchronized是啥?可以举例一二吗?谢了
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(java编程)请问java中synchronized是啥?可以举例一二吗?谢了相关的知识,希望对你有一定的参考价值。
//synchromizedpackage MyPackage;
class A
synchronized void get()
System.out.println("A");
System.out.println("B");
synchronized void put()
System.out.println("C");
System.out.println("D");
class Get implements Runnable
Thread t;
A temp;
Get(A a)
temp = a;
t = new Thread(this);
t.start();
public void run()
temp.get();
class Put implements Runnable
Thread t;
A temp;
Put(A a)
temp = a;
t = new Thread(this);
t.start();
public void run()
temp.put();
class MyJava
static public void main(String args[])
A o = new A();
Get o1 = new Get(o);
Put o2 = new Put(o);
try
o1.t.join();
o2.t.join();
catch (InterruptedException e)
System.out.println("interrupted!");
synchronized就是把一个线程调用的方法放在一个锁里面,让别的线程在方法返回前不能调用这个方法,但是要注意Put和Get里用的是同一个A实例,是由main方法传递上来的 参考技术A 同步的,比如3个线程(看做3个站台)完成一个卖100张票的任务,可能会出现3个站台同时卖一张票的情况,但是用synchronized后,就会同步,不会3个站台同时去卖一张票的情况,synchronized是用来同步的
java多线程
1.线程是一种东西,可以同步运行两个while循环
2.实现方式两种 new Thread子类,或者new Runable对象
3.流行为第二种,第二种更加体现面向对象
4.线程互斥。synchronized来保证线程安全
synchronized:互斥,作用于方法也可以方法里面逻辑,互斥什么?进程间共同持有的对象,字节码,变量
5.线程间通讯:最好把要执行的或者要保护的逻辑放在一个类中,这样synchronized更容易操作
以上是关于(java编程)请问java中synchronized是啥?可以举例一二吗?谢了的主要内容,如果未能解决你的问题,请参考以下文章
Java 多线程并发编程之 Synchronized 关键字
(java编程)请问java中synchronized是啥?可以举例一二吗?谢了