# thread-demo **Repository Path**: viplove/thread-demo ## Basic Information - **Project Name**: thread-demo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-07-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # thread-demo #### 项目介绍 多线程练习 ### 基础篇 #### 创建线程 1. [继承Thread类的方式创建线程](https://gitee.com/viplove/thread-demo/blob/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E5%88%9B%E5%BB%BA%E7%BA%BF%E7%A8%8B/ExtendThreadDemo.java) 2. [实现Runnable接口创建线程](https://gitee.com/viplove/thread-demo/blob/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E5%88%9B%E5%BB%BA%E7%BA%BF%E7%A8%8B/ImplRunnableDemo.java) 3. [创建有返回值的线程-lamba方式](https://gitee.com/viplove/thread-demo/blob/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E5%88%9B%E5%BB%BA%E7%BA%BF%E7%A8%8B/CallableDemo.java) 4. [创建有返回值的线程-接口方式](https://gitee.com/viplove/thread-demo/blob/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E5%88%9B%E5%BB%BA%E7%BA%BF%E7%A8%8B/CallableDemo2.java) #### 线程控制 1. [一个线程被阻塞直到另一线程完成(join)](https://gitee.com/viplove/thread-demo/blob/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E9%98%BB%E5%A1%9E%E7%BA%BF%E7%A8%8B/JoinThread.java) 2. [线程阻塞指定的时间(sleep)](https://gitee.com/viplove/thread-demo/blob/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E9%98%BB%E5%A1%9E%E7%BA%BF%E7%A8%8B/SleepThread.java) 3. [线程直接回到线程调度器(yield)](https://gitee.com/viplove/thread-demo/blob/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E9%98%BB%E5%A1%9E%E7%BA%BF%E7%A8%8B/YieldThread.java) #### 线程同步 1. [取钱案例-非阻塞](https://gitee.com/viplove/thread-demo/tree/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E7%BA%BF%E7%A8%8B%E5%90%8C%E6%AD%A5/%E9%9D%9E%E9%98%BB%E5%A1%9E%E5%8F%96%E9%92%B1%E6%A1%88%E4%BE%8B) 2. [取钱案例-阻塞(采用同步监视器的方式对共享资源进行同步,同一时间只有一个线程可以得到访问该共享资源的权利) ](https://gitee.com/viplove/thread-demo/tree/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E7%BA%BF%E7%A8%8B%E5%90%8C%E6%AD%A5/%E9%98%BB%E5%A1%9E%E5%8F%96%E9%92%B1%E6%A1%88%E4%BE%8B) 3. [取钱案例-同步方法(同步监视器同步的是调用这个方法的实例this)](https://gitee.com/viplove/thread-demo/tree/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E7%BA%BF%E7%A8%8B%E5%90%8C%E6%AD%A5/%E5%90%8C%E6%AD%A5%E7%9B%91%E8%A7%86%E5%99%A8) 4. [取钱案例-同步锁](https://gitee.com/viplove/thread-demo/tree/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E7%BA%BF%E7%A8%8B%E5%90%8C%E6%AD%A5/%E5%90%8C%E6%AD%A5%E9%94%81) 5. [死锁](https://gitee.com/viplove/thread-demo/tree/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E7%BA%BF%E7%A8%8B%E5%90%8C%E6%AD%A5/%E6%AD%BB%E9%94%81) #### 线程通信 1. [在同步监视器下进行线程通信](https://gitee.com/viplove/thread-demo/tree/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E7%BA%BF%E7%A8%8B%E9%80%9A%E4%BF%A1/%E5%90%8C%E6%AD%A5%E7%9B%91%E8%A7%86%E5%99%A8%E9%80%9A%E4%BF%A1) 2. [在同步锁侠进行线程通信](https://gitee.com/viplove/thread-demo/tree/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E7%BA%BF%E7%A8%8B%E9%80%9A%E4%BF%A1/%E5%90%8C%E6%AD%A5%E9%94%81%E9%80%9A%E4%BF%A1) #### 工具类 1. [使用BlockQueue进行队列控制线程通信(共享资源的同步通信)](https://gitee.com/viplove/thread-demo/tree/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E5%B7%A5%E5%85%B7%E7%B1%BB/BlockQueue) 2. [ThreadLocal 使得每个线程拥有资源的副本](https://gitee.com/viplove/thread-demo/blob/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E5%B7%A5%E5%85%B7%E7%B1%BB/ThreadLocal/ThreadLocalDemo.java) 3. [ForkJoinPool利用多核CPU特性将大任务切割为多个小任务并行执行](https://gitee.com/viplove/thread-demo/tree/master/src/main/java/%E5%9F%BA%E7%A1%80%E7%AF%87/%E7%BA%BF%E7%A8%8B%E6%B1%A0/ForkJoin)