昆明java培训
达内昆明广州春城路

18487146383

热门课程

java线程安全synchronized

  • 时间:2016-09-28
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明Java培训机构的老师今天给大家讲java线程安全synchronized

一、线程安全问题:

并发编程的原则:设计并发编程的目的是为了使程序获得更高的执行效率,但绝不能出现数据一致性(数据准确)问题,如果并发程序连最基本的执行结果准确性都无法保证,那并发编程就没有任何意义。

为什么会出现数据不正确:

如果一个资源(变量,对象,文件,数据库)可以同时被很多线程使用就会出现数据不一致问题,也就是我们说的线程安全问题。这样的资源被称为共享资源或临界区。

昆明Java培训机构的老师举个例子:

一个共享变量m,现在有两个线程同时对它进行累加操作,各执行10000次,那么我么期待的结果是20000,但实际上并不是这样的。看代码:

package com.jalja.base.threadTest;

public class SynchronizedTest implements Runnable{

private static volatile int m=0;

public static void main(String[] args) {

Runnable run=new SynchronizedTest();

Thread thread1=new Thread(run);

Thread thread2=new Thread(run);

thread1.start();

thread2.start();

try {

//join()使main线程等待这连个线程执行