随笔 - 158  文章 - 0 评论 - 4 阅读 - 19万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  线程

手写一个生产者消费者模式
摘要:主要是如何使用wait notify/notifyAll 先定义生产和消费的方法(同步问题) 定义生产者线程 定义消费者线程 最后写一个测试类,用来开启多个生产者,消费者线程执行操作 运行得到的结果为: 核心的就是每个线程拿到锁之后检测是不是满足条件,不满足则wait释放锁及CPU资源,等待被唤醒之 阅读全文
posted @ 2019-07-23 17:34 一中晴哥威武 阅读(1587) 评论(0) 推荐(0) 编辑
新的任务提交到线程池,线程池是怎样处理
摘要:第一步 :线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则执行第二步。 第二步 :线程池判断工作队列是否已经满。如果工作队列没有满,则将新提交的任务存储在这个工作队列里进行等待。如果工作队列满了,则执行第三步。 第二步 阅读全文
posted @ 2019-07-11 14:55 一中晴哥威武 阅读(1972) 评论(0) 推荐(0) 编辑
多线程上传和下载大文件(当文件服务器对上传文件大小有限制)
摘要:思路:将大文件切分成25M每块依次上传,创建线程池利用多线程的方法不断将每块上传到文件服务器,大大地缩短了全部文件上传成功的时间,全部上传成功会返回一个文件服务器存储上传文件 url 的 list 集合;可以利用这个 list 集合去文件服务器进行文件下载 阅读全文
posted @ 2019-06-28 15:09 一中晴哥威武 阅读(1472) 评论(0) 推荐(0) 编辑
分布式环境下,怎么保证线程安全
摘要:避免并发 在分布式环境中,如果存在并发问题,那么很难通过技术去解决,或者解决的代价很大,所以我们首先要想想是不是可以通过某些策略和业务设计来避免并发。比如通过合理的时间调度,避开共享资源的存取冲突。另外,在并行任务设计上可以通过适当的策略,保证任务与任务之间不存在共享资源,比如在以前博文中提到的例子 阅读全文
posted @ 2019-03-25 15:01 一中晴哥威武 阅读(4855) 评论(0) 推荐(0) 编辑
创建线程池的4种方式
摘要:newCachedThreadPool创建一个可缓存线程池, newFixedThreadPool 创建一个定长线程池, newScheduledThreadPool 创建一个定长线程池, newSingleThreadExecutor 创建一个单线程化的线程池 阅读全文
posted @ 2019-03-25 14:47 一中晴哥威武 阅读(489) 评论(0) 推荐(0) 编辑
什么是ThreadLocal
摘要:当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。ThreadLocal和线程同步机制都是为了解决多线程中相同变量的访问冲突问题。来解决多线程的并发访问。主要有Set () 阅读全文
posted @ 2019-03-22 17:10 一中晴哥威武 阅读(115) 评论(0) 推荐(0) 编辑
wait方法和sleep方法的区别
摘要:sleep方法属于Thread类中方法,调用sleep 不会释放对象锁。wait 是Object 类的方法,对此对象调用wait 方法导致本线程放弃对象锁,sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常。 阅读全文
posted @ 2019-03-22 16:51 一中晴哥威武 阅读(177) 评论(0) 推荐(0) 编辑
Runnable接口和Callable接口的区别。
摘要:Callable需要实现call方法,而Runnable需要实现run方法;并且,call方法还可以返回任何对象,无论是什么对象,JVM都会当作Object来处理。但是如果使用了泛型,我们就不用每次都对Object进行转换了。 阅读全文
posted @ 2019-03-22 16:26 一中晴哥威武 阅读(185) 评论(0) 推荐(0) 编辑
创建线程的3种方式。什么是线程安全。
摘要:如果你有一个方法,存在同时多个线程同时访问它,如果结果与单线程访问的预期结果一样,那么就说线程安全,如果结果不一样就说线程不安全 阅读全文
posted @ 2019-03-22 16:24 一中晴哥威武 阅读(319) 评论(0) 推荐(0) 编辑
线程池构造类 ThreadPoolExecutor 的 5 个参数
摘要:1、corePoolSize :核心线程数 2、maxPoolSize: 最大线程数 3、keepAliveTime :闲置线程存活时间 4、unit:参数keepAliveTime的时间单位,有7种取值,在TimeUnit类中有7种静态属性: TimeUnit.DAYS; //天 TimeUnit 阅读全文
posted @ 2019-01-18 14:38 一中晴哥威武 阅读(699) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示