课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > Java并行基础
  • Java并行基础

    发布:昆明Java培训      来源:达内新闻      时间:2016-07-31

  • Java并行基础

    1、线程状态图及基本操作

    2、新建线程

    start()而不是run()

    3、终止线程

    stop:stop比较暴力,会直接终止线程,并且释放这个线程所持有的锁,可能会导致数据不一致性;

    正确的方法应该是在线程体里面增加一个标志位,标志位代表是否终止该线程,线程执行的时候回检查标志位的状态,如果为true,则退出执行;

    4、线程中断

    关于线程中断有3个方法:

    public void Thread.interrupt() //中断线程,设置中断标志位

    public boolean Thread.isInterrupted() //判断是否被中断

    public static boolean Thread.interrupted() //判断是否被中断,并清除中断状态

    在具体应用的时候需要像stop线程一样,在线程执行方法里面检查该线程是否被中断,如果被中断就退出;

    5、线程等待和通知

    线程等待和通知通过调用obj.wait() 和 obj.notify()方法执行,当调用wait方法时,该线程就会在这个对象上等待,直到其他线程调用该对象notify方法,obj就是多个线程之间的通信手段;

    wait方法必须在同步快中调用,notify方法会在该对象的阻塞队列中随机选择一个线程运行;

    wait方法和sleep方法一样 都可以让线程等待一段时间,除了wait可以被唤醒,sleep需要被打断,另外一个主要的区别就是wait方法会释放目标对象的锁,而sleep方法则不会;

    6、suspend和resume

    suspend和resume方法已被废弃,因为suspend在挂起线程的同时并不会释放任何锁资源,从而导致其他线程也无法执行,直到调用了resume方法,被挂起的程序才能被访问;

    7、join和yield

    join表示无限等待,他会一直阻塞当前线程,直到目标线程执行完毕;

    yield会让出cpu,然后就想争夺cpu;

    10、volatile与jmm

    volatile关键字保证共享数据的可见性,线程会在释放锁之前把数据写回主存,保证其对其他线程可见;但是volatile只是保证可见性,并不能保证互斥性,而synchronized既可以保证可见性,又能保证互斥性;

    11、守护线程

    系统的守护者,在后台默默执行一些系统服务,如垃圾回收线程、jit线程;与之相对的是用户线程,用户线程是系统的工作线程,如果用户线程全部结束,那这个程序也就无事可做了,应用程序就会退出;

    12、线程优先级

    在Java中,使用1到10表示线程的优先级,数字越大,优先级越高;

    13、synchronized关键字用法

    制指定加锁对象

    直接作用于实例方法,进入同步代码的时候会获得当前实例的锁;

    直接作用于静态方法:相对于当前类加锁,进入同步代码的时候会获得当前类的锁;

    14、Java集合的线程安全性

    线程安全的Java集合:vector,stack,enumeration,hashtable,还有并发包里面的一些类:CopyOnWriteArrayList, ConcurrentHashMap,CopyOnWriteArraySet。

    推荐文章

上一篇:jmm的一些特性

下一篇:Java并发包

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56