随笔分类 - 多线程与分布式
学习笔记
摘要:为什么要使用线程池? 反复创建线程开销大、过多的线程会占用太多内存 线程池的好处:加快响应速度、合理利用CPU和内存、统一管理 线程池中构造方法的参数 corePoolSize指的是核心线程数 线程池在完成初始化后,默认情况下,线程池中并没有任何线程,线程池会等待有任务到来时,再创建新线程去执行任务
阅读全文
摘要:1.线程通信涉及到的三个方法: wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器。 notify():一旦执行此方法,就会唤醒被wait的一个线程。如果有多个线程被wait,就唤醒优先级高的那个。 notifyAll():一旦执行此方法,就会唤醒所有被wait的线程。 2.说明
阅读全文
摘要:方式一:同步代码块 synchronized(同步监视器){ //需要被同步的代码 } 说明:1.操作共享数据的代码,即为需要被同步的代码。 -->不能包含代码多了,也不能包含代码少了。 2.共享数据:多个线程共同操作的变量。比如:ticket就是共享数据。 3.同步监视器,俗称:锁。任何一个类的对
阅读全文
摘要:进程与线程的理解: 进程:程序的一次执行过程,或是正在运行的一个程序。进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域。 线程:进程可进一步细化为线程,是一个程序内部的一条执行路径。线程作为调度和执行的单位,每个线程拥独立的运行栈和程序计数器(pc),线程切换的开销小。 进程可以细
阅读全文
摘要:1、继承Thread类的方式: 步骤1:创建一个继承于Thread类的子类 步骤2:重写Thread类的run() --> 将此线程执行的操作声明在run()中 步骤3:创建Thread类的子类的对象 步骤4:通过此对象调用start():①启动当前线程 ② 调用当前线程的run() 2、实现Run
阅读全文