您的位置:首页 > 编程语言 > Java开发

Java学习笔记1-多线程

2016-02-01 17:39 295 查看

1 、线程的创建

有两种方法,继承Thread类和实现Runnable或Callable接口

2、线程的操作

join线程:等待被join线程执行完毕

后台线程:为其他的线程提供服务

线程睡眠:进入阻塞状态

yield:让当前线程让步,让系统的线程调度器重新调度一下

3、线程池

ExecutorService

对应的任务可以是实现Runnable接口或Callable接口。

CompletionService

对应的任务可以是实现Runnable接口或Callable接口。与ExecutorService相比,可以分别获取线程的返回值

ForkJoinPool

对应的任务是ForkJoinTask,分别有两个实现类,RecursiveTask和RecursiveAction。其中前者代表有返回值,后者代表无返回值

4、线程同步

线程同步解决多个线程同时执行,对同一资源的访问问题

- 同步监视器

Synchronized同步块

synchronized同步方法

- 同步锁

lock

5、线程通信

线程通信用于不同线程之间的调度

- 传统方法,使用Object的wait()、nofify()、nofityAll()

- 使用lock锁对应的Condition控制线程通信,对应方法有await()、nofity()、nofifyAll()

- 使用BlockingQueue阻塞队列控制线程通信,put(E e),take()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: