多线程并发
伊子帆666
这个作者很懒,什么都没留下…
展开
-
多线程并发学习(一):线程基础
1. 进程 是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单元。2. 线程 是进程中执行运算的最小单元,是进程的一个实体,是被系统独立调度和分派的基本单元。 一个标准的线程有线程ID、计数器(当前指令指针pc)、寄存器集合和堆栈组成。 线程自己不拥有资源,只拥有一点运行中必不可少的资源,与同一进程中的其他线程共享进程所拥有的...原创 2019-08-02 22:11:21 · 156 阅读 · 0 评论 -
多线程并发学习(二):Daemon线程
1. daemon线程即守护线程Java 中有两种线程: 一种是用户线程(User Thread),一种是守护线程(Daemon Thread)。守护线程是一种特殊的线程, 它的特殊有“陪伴”的含义, 当线程中不存在非守护线程时, 则守护线程自动销毁。垃圾回收线程就是一种守护线程, 当线程中没有非守护线程了, 则垃圾回收线程就会自动销毁。因此, 守护线程的作用就是为其他非守护线程的...原创 2019-08-03 10:43:44 · 905 阅读 · 0 评论 -
多线程并发学习(三):启动和终止线程
1. 构造线程 运行线程之前需要先构造线程对象,构造线程对象时需指定线程所需要的属性,比如:所属线程组、线程优先级、是否为daemon线程等信息。 java.lang.Thread中对线程初始化的方法如下:private void init(ThreadGroup g, Runnable target, String name, ...原创 2019-08-03 16:10:10 · 167 阅读 · 0 评论 -
多线程并发学习(四):线程中sleep,wait,notify,,notifyAll,join,yield等常用方法辨析
1. sleep()方法使线程暂时休眠。线程的调度执行是按照优先级的高低顺序进行的,当高级线程未完成即未死亡时,低级线程没有机会获得处理器。有时候优先级高的线程需要优先级低的线程来配合它,或者优先级高的线程需要完成一些费时的操作,此时优先级高的线程应该让出处理器,使优先级低的线程有机会执行。为了达到这个目的,可以再run()方法中调用sleep()方法使自己放弃处理器资源,休眠一段时间。...原创 2019-08-03 18:33:30 · 304 阅读 · 0 评论 -
多线程并发学习(五):线程间的协作/通信
1. 线程同步synchronized和volatile要说明线程同步问题首先要说明Java线程的两个特性,可见性和有序性。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变量来实现。关键字synchronized可以修饰方法或者以同步块的形式来进行使用,用于保护共享数据,它主要确保多个线程在同一个时刻,只能有一个线程处于方法或者同步块中,它保证了线程对变量访问的可见性和排...原创 2019-08-04 16:46:16 · 237 阅读 · 0 评论