(java编程)请问java中synchronized是啥?可以举例一二吗?谢了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(java编程)请问java中synchronized是啥?可以举例一二吗?谢了相关的知识,希望对你有一定的参考价值。

//synchromized
package 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是啥?可以举例一二吗?谢了

java多线程

BAT美团滴滴java面试大纲(带答案版)之四:多线程Lock

请问java开发工具都有哪些

java 请问 这种题的解题思想是啥?