线程的创建方法
对于并发来说,目前就是处于多个线程共同抢占同一个资源来展开的,
线程: 进程中单个可操作的最小逻辑单位,
面试题: 创建线程的方法:
创建线程的方法,
继承 Thread 类
实现 Runnable 接口
实现 callable 接口
线程池
1.创建线程
匿名内部类,加上 lambda 表达式
复制代码
我们使用实现接口 Runnable 的方式,因为组合中组合优于继承(Prefer composition over inheritance)
降低耦合,java 是单继承
Runnable 中的run()
方法并不是你所创建的线程调用的,而是调用你这个线程的线程调用的,也就是主线程。
其中 启动线程的是 start(),
测试:
用两种不同的方式,创建出两个线程,交差打印 1~100 之间的奇数和偶数,并断点调试。
复制代码
常用于线程的使用于,多个请求处理抢占资源,当多个人去抢夺同一件资源之后这个里面的资源的把控和对于外界告诉当前的资源所剩比例,或者说是当前是否可以进去直接抢占就和我们之前提到的锁相关,以及数据可见性有关
这几个创建的方法其实都可以,但是我们常用的还是线程池的使用利用池化的思想,可以减少对于链接的损耗,提高管控的能力,积极的可以对所需要的资源进行整理
当前我们侧重点是支持线程池数据中的基本参数,
corePoolSize:核心线程数
maximumPoolSize:最大线程数
unit:时间单位
workQueue:工作队列
线程最大存货时间等
类似于银行机制,柜台取钱的操作,如果可以就进行数据处理,如果不行将可以对数据直接进行放到工作队列里面等
版权声明: 本文为 InfoQ 作者【卢卡多多】的原创文章。
原文链接:【http://xie.infoq.cn/article/2b5a90b5b7195982fcde9cd7b】。文章转载请联系作者。
评论