java线程基础知识
文章平均质量分 54
qq_32182461
这个作者很懒,什么都没留下…
展开
-
java线程基础知识 --创建线程的三种方式
创建线程有三种方式:实现Runnable接口、继承Thread类、实现CallAble接口,代码如下:对应的运行结果如下:有些小伙伴可能会对结果二和结果三产生疑问,现在解释如下(个人理解): 程序是调用了两个线程来并发执行(不是并行),也就是两个线程交替获得cpu的执行权来运行自己线程栈中的程序,但是他们在运行的过程中,没有办法保证自己栈中代码块的原子性,也就是没办法保证从始到终一直...原创 2018-02-23 23:03:53 · 250 阅读 · 0 评论 -
控制线程的方法
控制线程的方法有join(),sleep()(休眠)、yield()(让步)、suspend()(挂起){容易造成死锁,不建议使用}、resume()(恢复{同样容易造成死锁,不建议使用});简单的测试下sleep()和yield(),并说明线程在这两种状态下对cpu的持有状态和对同步锁的持有状态:在这里不贴出程序运行的结果,大家可以根据代码在自己的机器上跑一下体会一下我接下来要阐述的,这要看起来...原创 2018-02-24 00:47:49 · 364 阅读 · 0 评论 -
线程之间的通信
有的时候我们需要来控制线程之间的执行顺序,而线程之间的通信就借助于变量之间的关系,比如在变量是什么状态下让什么线程来执行。 当我们在使用同步锁的时候可以使用object的wait(),notify(),notifyAll()来控制线程是否等待,是否被唤醒。 这三个方法的使用需要注意,三个方法的调用者必须是监视锁对象本身。synchronized(监...原创 2018-02-24 16:30:58 · 153 阅读 · 0 评论 -
简单实现线程池
最近在研究线程池,在看jdk源码的时候也感觉很头疼,毕竟jdk写的很抽象,想到的情况也很全面,因此全部研究透彻对于一枚大三狗来说也是很吃力。 所以也就只能挑出重点来看了。在看jdk源码的时候要注重源码的实现思想,而不是看他是怎么怎么敲的代码,如果只是死记代码的话对我们来说也没有什么意义。 现在就来分析一下源码思想(个人理解,不可能全面,只是冰山一角): ...原创 2018-02-25 20:52:28 · 214 阅读 · 0 评论