java如何创建线程

 时间:2024-11-11 05:36:29

1、首先,不用创建线程类也可以开启一个小的线程,直接写在main方法里,new一个Thread就可以了,这是最简单的开启线程的方式。

java如何创建线程

2、使用继承的方式创建线程类,其启动方式。

java如何创建线程
java如何创建线程

3、使用实现接口的方式创建线程类,启动方式就变了

java如何创建线程
java如何创建线程

4、最后来看一下线程池的方式,线程池有镉胶鱿瓜几个参数,其含义要注意一下,corePoolSize 核心池数量;maximumPoolSize:最大池数量;keepAlive皈其拄攥Time:存活时间(指的是线程池当前活动的线程数量超过了corePoolSize,线程池会关闭存活时间超过keepAliveTime的活动线程);TimeUnit:时间单位(秒或者毫秒等,是个枚举类型);BlockingQueue:阻塞队列(当线程并发较多时,当前活动的线程处理不了,部分线程会放进阻塞队列等待执行(理论上是当请求大于maximumPoolSize时,多余的会放在阻塞队列中),当阻塞队列放满时(请求数>maximumPoolSize+阻塞数量),多余的线程就会直接被拒绝掉。可以设置阻塞队列的大小,阻塞队列也可以无界,这样就不会有线程被拒绝。);RejectedExecutionHandler:阻塞队列放满了,还有多余的线程,就会交给这个东西处理,我们也可以写自己的拒绝处理类。

java如何创建线程

5、我们写个线程池测试一下阻塞的情况,猜一猜是否会有线程被拒绝。线程类使用ThreadClass1,接我们自定义一个处理拒绝线程的类TestRejectedExecutionHandler

java如何创建线程

6、编写TestThreadPool2,开启线程。注意要shutDown线程池,否则程序不会终止。

java如何创建线程

7、输出结果,和我们猜的差不多吧。9>2+6,所以第九个被拒绝了。还有一点要注意就是设置了一个30毫秒的延迟,这样就保证了有两个正在执行,有6个放在阻塞队列,还有一个被kill掉。

java如何创建线程
  • deepin linux如何安装Microsoft Office
  • ubuntu使用教程—wine的安装
  • Mac下用VMware Fusion安装Linux系统Centos7
  • 用python搭建最简单的服务器与网站
  • 如何使用vnc连接linux服务器
  • 热门搜索
    人间真情手抄报 民族风情手抄报 学会感恩手抄报内容 年俗年韵年文化手抄报 数学乐园手抄报内容 春天的手抄报大全 生活中的数学手抄报 铁路安全手抄报 绿色校园手抄报资料 有关古诗的手抄报