浅谈java并发编程

  首先介绍下并发编程的三种基本特性:原子性:线程内部不可分割,整个线程里面的操作要么不执行,要么全部执行。

                   可见性:一个线程修个了某个值,其他线程要捕获整个变化并引用新值。

                   有序性:所有线程按照代码顺序执行

  JVM的最小执行单位为线程,线程的执行状态有4种:就绪运行挂起死亡

  1.常用的线程创建方法有两种: ①继承Thread类并且重写run()方法。

                ②实现Runnable接口并且实现run()方法。

  两种线程的创建方式都非常简单,这里就不附上源码了,简单对两种方法进行一个比较,第一种方法和第二种方法都必须重新写run()方法,并通过start方法调用使线程处于就绪状态等待CPU调度,不同的是前一种方法采用的是继承父类,后者是实现接口,由于java具有单继承性(即只能继承一个类),并且一般来说继承多用于进行类的强化,所以首选创建线程的方法应该为第二种,也就是实现Runnable接口并且实现run()方法。

 2.java可通过volatile来保证线程的可见性,但是不能保证线程的原子性,synchronize可让线程排队执行,既保证了线程的可见性,也保证的线程的原子性,但是执行效率会因此降低。

  其他关于线程的知识请自行百度或者查阅资料,这里只是对并发编程做一个简单的概括

  

  

              

猜你喜欢

转载自www.cnblogs.com/a5137/p/9728924.html