多线程
文章平均质量分 69
多线程
科特er
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
标准的线程池
CallerRunsPolicy:如果线程池满,提交任务的线程自己去执行该任务,不会使用线程池中的线程去执行。a、当前工作线程数小于核心线程数时,即使其他工作线程处于空闲状态也会创建新的线程,直到线程数达到核心线程数。b、在核心线程已经用完,但阻塞队列没有满的情况下,对于新接受的任务不会创建新线程,而是会被添加到阻塞队列中。shutdownNow():立即关闭线程池,中断正在执行的线程,清空队列中的任务,返回尚未执行的任务。SHUTDOWN:该状态下线程池不在接受新任务,但会将工作队列中的任务执行完成。原创 2023-02-09 22:27:25 · 235 阅读 · 0 评论 -
线程的基本操作
如果线程被Object.wait(),Thread.join(),Thread.sleep()阻塞,此时调用该线程的interrupt(),此时会抛出InterruptedException中断异常,提早结束阻塞。共三个线程,第一个线程没设置名字,线程使用Thread-0,"0"代表编号。第二个线程设置名称为“线程A”,第二个线程设置名称为“线程B”,join(long millis):被合并线程执行结束,或者等待执行millis长的时间。线程不受影响,继续执行,只是线程的中断标志被设置为true。原创 2023-02-05 23:03:01 · 242 阅读 · 0 评论 -
线程与java线程的状态学习
从操作系统的层面讲,线程一般有5种状态:新建,就绪,运行,阻塞,终止。原创 2023-02-05 00:49:51 · 446 阅读 · 0 评论 -
线程的调度模式
操作系统线程的调度方式是:基于CPU时间片进行线程调度,线程只有得到CPU时间片才执行,没有得到时间片的线程处于就绪状态,等待系统分配时间片。现代操作系统提供了强大的线程管理能力,java不需要在进行独立的线程管理和调度,而是将线程调度的工作委托给操作系统去完成。系统按照优先级分配CPU时间片,优先级高的线程分配的时间片多。如果线程的优先级一样,那么系统会随即挑选一个线程执行。系统平均分配CPU时间片,所有线程轮流占有CPU,线程之间是平等的。线程的调度模式有两种:分时调度模式,抢占式调度模式。原创 2023-02-04 23:15:50 · 723 阅读 · 0 评论 -
创建线程的4种方法
但是在实际使用中我们不会采用Executors这种方法来创建线程池,而是采用线程池的标准创建方式(即使用ThreadPoolExecutor来创建线程池),因为Executors这几种创建方式都存在弊端。FutureTask的构造器需要一个Callable类型 的对象,因此我们创建一个类CallableThread来实现Callable接口,并作为参数传递给FutureTask的构造器。Runnable:就是之前上文提到过的,用来创建线程的Runnable,可以作为Thread线程实例的target。原创 2023-02-04 11:01:12 · 568 阅读 · 0 评论 -
Thread类的基本信息
getId(),获取线程的唯一标识id。原创 2023-02-02 20:14:07 · 118 阅读 · 0 评论 -
进程与线程(1)
每启动一个java程序就会启动一个JVM进程,在这个JVM进程内部,java程序都是以线程来运行的,JVM找到程序的main()方法,然后运行main()方法,这样就启动的一个主线程。一个进程中有一个或者多个线程,各个线程之间共享进程的内存空间和系统资源。c、进程之间是相互独立的,但一个进程中各个线程共享该进程的方法区内存,堆内存和系统资源。就是代码段,是进程的程序指令在内存中的位置,包含需要执行的指令集合。包含进程的描述信息和控制信息,是进程存在的唯一标识。指线程ID,线程名称,线程状态,线程优先级等。原创 2023-01-31 22:39:56 · 134 阅读 · 0 评论
分享