博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java多线程 - 并发
阅读量:6283 次
发布时间:2019-06-22

本文共 1181 字,大约阅读时间需要 3 分钟。

hot3.png

  1. 学习并发首先要认识到一点:没有阻塞,并发毫无意义。并发解决的是多任务的并行问题。
  2. 进程:操作系统级别的资源消费者,独立地址空间; 线程:进程中的“子任务”,无法单独持有系统资源。
  3. 实现方式:
  • 实现runnable接口
  • 继承Thread
  • Thread构造器(Thread t = new Thread(new XXX()))
  • 这里是列表文本Executor方式
ExecutorService exec = new Executors.newCachedThreadPool();  exec.execute(new XXX());  exec.shutdown();
ExecutorService exec = Executors.newCachedThreadPool();  Future
ft = exec.submit(new XXX());//XXX实现Callable接口 ft.get();//返回XXX的调用结果
  1. Exception处理类:Thread.UncaughtExceptionHandler接口的实现类可以用来处理线程运行中产生的异常
  2. ThreadFactory:对批量的Thread进行预订的设置
  3. 后台线程:所有非后台线程结束以后,不管后台线程运行到什么地方,JVM都会强制结束后台线程
  4. 线程协作:
  • wait -> 挂起 -> notify/timeout -> 执行
  • 同步(synchronized)
  • 使用Lock和Condition
Lock lock = new ReentrantLock();  Condition condition = lock.newCondition();  lock.lock();//获得lock  condition.await();//挂起任务  condition.signal();//唤醒condition上的任务  lock.unlock();//释放lock
  • 原子类
  1. 线程安全的容器
collection |----List|    |----LinkedList   no synchronized|    |----ArrayList     no synchronized         |    |----Vector         synchronized|         |----Stack|----Set                   no synchronizedMap|----HashMap          no synchronized|----HashTable        synchronized
  1. 扩展:

转载于:https://my.oschina.net/chris2009/blog/648628

你可能感兴趣的文章
js 判断整数
查看>>
建设网站应该考虑哪些因素
查看>>
mongodb $exists
查看>>
js实现页面跳转的几种方式
查看>>
sbt笔记一 hello-sbt
查看>>
常用链接
查看>>
pitfall override private method
查看>>
!important 和 * ----hack
查看>>
聊天界面图文混排
查看>>
控件的拖动
查看>>
svn eclipse unable to load default svn client的解决办法
查看>>
Android.mk 文件语法详解
查看>>
QT liunx 工具下载
查看>>
内核源码树
查看>>
Java 5 特性 Instrumentation 实践
查看>>
AppScan使用
查看>>
Java NIO框架Netty教程(三) 字符串消息收发(转)
查看>>
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>