多线程
zhongbai-
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java.util.ConcurrentModificationException=null
我的错误原因是在forEach循环list的时候,并且在多线程场景下使用remove()移除元素: 搜索解决办法: 使用for(int i=0;i<a.size;i++)失败 使用Iterator遍历list,不报ConcurrentModificationException的错误了,报多线程异常。很难了!!! 解决办法: 使用new CopyOnWriteArrayList<>(list); 将list放入CopyOnWriteArrayList中,使用新的list进行遍历移除就可以了,原创 2022-03-10 17:01:36 · 650 阅读 · 0 评论 -
java线程池分段下载文件
控制台输入下载链接: 一:实现基本的下载的功能原创 2021-12-24 14:03:41 · 1804 阅读 · 5 评论 -
使用线程池创建线程
使用线程池创建线程 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完 放回池中。可以避免频繁创建销毁、实现重复利用。 好处: 1 提高响应速度(减少了创建新线程的时间) 2 降低资源消耗(重复利用线程池中线程,不需要每次都创建) 3 便于线程管理 corePoolSize:核心池的大小 maximumPoolSize:最大线程数 keepAliveTime:线程没有任务时最多保持多长时间后会终止 ExecutorService:真正的线程池接口。常见子类Thr原创 2021-07-16 21:19:33 · 441 阅读 · 1 评论 -
Callable创建多线程
Callable创建多线程 1.创建一个实现Callable实现类 2.实现call方法,将此线程所要执行的操作声明在该方法中 3.创建Callable接口实现类的对象 4.将此Callable接口实现类的对象作为参数传递到FutureTask构造器中,创建FutureTask的对象 5.将FutureTask的对象作为参数传递到Thread类构造器中,创建Thread对象,调用start()方法 futureTask.get()返回值即为FutureTask构造器参数Callable实现类重写的call(原创 2021-07-16 21:00:19 · 399 阅读 · 1 评论 -
线程的通信--生产者消费者问题
wait() 与 notify() 和 notifyAll() wait():令当前线程挂起并放弃CPU、同步资源并等待,使别的线程可访问并修改共享资源,而当 前线程排队等候其他线程调用notify()或notifyAll()方法唤醒,唤醒后等待重新获得对监视器的所有 权后才能继续执行。 notify():唤醒正在排队等待同步资源的线程中优先级最高者结束等待 notifyAll ():唤醒正在排队等待资源的所有线程结束等待. 这三个方法只有在synchronized方法或synchronized代.原创 2021-07-16 16:18:20 · 122 阅读 · 2 评论 -
多线程笔记
步骤: 创建线程的方式2 :实现Runnable接口 1.创建一个实现Runnable接口的类 2.实现类去实现Runnable中的抽象方法 run() 3.创建实现类的对象 4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象 5.通过Thread类的对象调用start()方法 /* * 1.创建一个实现Runnable接口的类 * */ class MyRunnable implements Runnable{ //2.实现类去实现Runnable中的抽象方法原创 2021-07-03 10:41:26 · 130 阅读 · 2 评论 -
Thread创建多线程笔记
Thread创建多线程步骤: 多线程的创建:方式一:继承Thread类 1.创建一个继承于Thread类的子类 2.重写Thread类的run方法 -->将此线程执行的操作声明在run方法里面 3.创建Thread类的子类对象 4.通过此对象调用start()方法 /* * 多线程的创建:方式一:继承Thread类 * 1.创建一个继承于Thread类的子类 * 2.重写Thread类的run方法 -->将此线程执行的操作声明在run方法里面 * 3.创建Thread类的子类对象 * 4.通原创 2021-06-23 15:48:41 · 363 阅读 · 0 评论
分享