Java线程同步需要我们大家不断的学习,但是在学习的时候有些重要的代码还是需要注意,下面我们就来详细的看看Synchronized,顾名思义,代表Java线程同步。那么,在java编程中如何使用它呢?
我们首先来看这样一个情况:对于同一个变量synDemo,我们分别在2个不同的线程中调用synDemo.synMethord1()与synDemo.synMethord2()。
- package com.cnblogs.gpcuster;/** * * @author Aaron.
Guo * */- public class Tester { public static void main(String[]
args) { final SynDemo synDemo = new SynDemo(); Thread
thread1 = new Thread() { @Override public void run() {
// TODO Auto-generated method stub- super.run(); synDemo.synMethord1(); } }; Thread thread2
= new Thread() { @Override public void run() { // TODO
Auto-generated method stub- super.run(); synDemo.synMethord2(); } }; thread1.start();
thread2.start(); while (true) { try { Thread.sleep(1000);
System.out.println("main"); } catch (InterruptedException e)
{ // TODO Auto-generated catch block- e.printStackTrace();
- }
- }
- }
- }
我们的SynDemo是这样定义的:
- package com.cnblogs.gpcuster;/** * * @author
Aaron.Guo * */- public class SynDemo{ public void synMethord1() {
while(true) { try { Thread.sleep(1000); System.out.
println("synMethord1"); } catch (InterruptedException e)
{ // TODO Auto-generated catch block- e.printStackTrace();
- }
- }
- }
- public void synMethord2() { while(true) { try { Thread.
sleep(1000); System.out.println("synMethord2"); } catch
(InterruptedException e) { // TODO Auto-generated catch block- e.printStackTrace();
- }
- }
- }
- }
以上就是对Java线程同步的详细介绍,希望大家有所帮助。
【编辑推荐】