摘要: 这种错误是由于未安装 vcredist 引起的 下载 vcredist 地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=40784 安装刚才下载的那个软件,位置默认即可,安装成功 然后重新进行安装,成功解决这个问题! 阅读全文
posted @ 2018-11-26 10:41 知识追求者 阅读(11170) 评论(0) 推荐(2) 编辑
摘要: 线程池的好处: 避免我们过多的去new线程,new是占资源的(GC主要堆内存) 提高效率 避免浪费资源 提高响应速度 作用:会把之前执行某个线程完毕的线程不会释放掉会留到线程池中给下一个调用的线程直接使用 前提:AB线程在同一个线程池里面;A线程执行完毕了,B线程进来了,就直接去替换原来A线程的ru 阅读全文
posted @ 2018-11-26 00:43 知识追求者 阅读(187) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch(闭锁)计数器 有一个任务A,它要等待其他4个任务执行完毕之后才执行,此时就可以利用CountDownLatch来实现这种功能 package com.cppdy; import java.util.concurrent.CountDownLatch; class MyT 阅读全文
posted @ 2018-11-25 23:24 知识追求者 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 1、Java.util的线程安全工具类 Vector(线程安全) ArrayList(线程不安全) HashTable(线程安全) HashMap(线程不安全) 2、将线程不安全集合变为线程安全集合 3、ConcurrentHashMap(分段存储,分段锁,只要多个修改操作发生在不同的段上,它们就可 阅读全文
posted @ 2018-11-25 22:22 知识追求者 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 如何停止线程 1、使用stop方法强行终止线程(这个方法不推荐使用,可能会出现业务操作未执行完,线程中断了) package com.cppdy; class MyThread15 extends Thread{ @Override public synchronized void run() { 阅读全文
posted @ 2018-11-25 21:45 知识追求者 阅读(138) 评论(0) 推荐(0) 编辑
摘要: Lock锁是JDK1.5之后推出的并发包里面的关键字(注意捕获异常,释放锁) Lock与synchronized的区别 Lock锁可以人为的释放锁(相当于汽车中的手动挡) synchronized当线程执行完毕或者抛出异常的话,锁自动释放(相当于汽车中的自动挡) Condition用法 Condit 阅读全文
posted @ 2018-11-25 21:11 知识追求者 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 多线程通讯实例(必须要有多个线程、必须要管理同一个变量;线程A生产一个变量,线程B消费一个变量) 生产者线程A:如果有值还没读,就等待 消费者线程B:如果全部读完了,就等待 阅读全文
posted @ 2018-11-25 19:37 知识追求者 阅读(137) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal关键字实现每个线程有自己的变量 阅读全文
posted @ 2018-11-25 16:51 知识追求者 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 使用violate关键字解决了变量的可见性问题(volatile让多线程刷新falg的值) 当更改falg的值,volatile会更新其它线程falg的值 阅读全文
posted @ 2018-11-25 16:24 知识追求者 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 使用atomicInteger解决了原子性问题(AtomicInteger保证每次只能一个线程操作count) 原子性:保证10个线程都对count加了1000次,最终结果为10000 阅读全文
posted @ 2018-11-25 15:53 知识追求者 阅读(131) 评论(0) 推荐(0) 编辑