多线程
Silence丶你的名字
你的名字
展开
-
多线程完成连续打印1-100的数字, 要求一条线程专门打印奇数,另外一条专门用来打印偶数
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.Executors;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;/** * ### 作业5: * 请利用线程间通信, 完成连续打印1-100的数字, 要求一条线程专门打印奇数,另外一条专门用来打印偶数 * **要求**:.原创 2021-04-25 08:21:32 · 357 阅读 · 0 评论 -
使用多线程拷贝文件夹
import java.io.*;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.Executors;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;/** * 使用多线程拷贝文件夹 * 不考虑目的地文件的唯一性。 不按源文件格式拷贝 * 每个文件开一条线程去拷贝。最大.原创 2021-04-22 13:29:56 · 542 阅读 · 0 评论 -
多线程线程池的基本创建,使用方法
import java.util.concurrent.*;/** * 多线程线程池的基本创建,使用方法 * * @author silence */public class Silence { public static void main(String[] args) { //创建一个线程池 最大线程数量20 核心线程15 //如果提交了超过15 不超过20的任务,会创建临时线程。 //临时线程超过 60秒会被销毁 .原创 2021-04-22 13:27:40 · 91 阅读 · 0 评论 -
lambda表达式创建一条最简单的线程
/** * @author silence */public class Demo1 { public static void main(String[] args) { new Thread(() -> { //打印线程名 for (int i = 0; i < 100; i++) { System.out.println(Thread.currentThread().getNam.原创 2021-04-22 08:19:12 · 228 阅读 · 0 评论 -
实现Runnable 创建多线程的简单实现
/** * 实现Runnable 创建多线程的简单实现 * * @author silence */public class MyRunnable implements Runnable { @Override public void run() { for (int i = 0; i < 100; i++) { //打印当前线程名 System.out.print(Thread.currentThread(.原创 2021-04-21 18:25:36 · 124 阅读 · 0 评论 -
继承Thread 创建多线程的简单实现
/** * 继承Thread 创建多线程的简单实现 * @author silence */public class MyThread extends Thread { @Override public void run() { for (int i = 0; i < 100; i++) { //打印当前线程对象名称 System.out.print(getName() + "----"); S.原创 2021-04-21 18:22:52 · 55 阅读 · 0 评论 -
Callable创建多线程
import java.util.concurrent.Callable;/** * @author silence * Callable创建多线程 * 创件一个类,实现 Callable 《》 这里填返回值类型 * 重写call 方法。 */public class MyCallable implements Callable<String> { @Override public String call() throws Exception { .原创 2021-04-21 18:19:35 · 52 阅读 · 0 评论 -
生产者和消费者
/** * 生产者和消费者 */public class Demo { public static void main(String[] args) { Cooker cooker = new Cooker(); cooker.setName("厨师:"); Foodie foodie = new Foodie(); foodie.setName("吃货:"); cooker.start(); .原创 2021-04-21 18:07:28 · 47 阅读 · 0 评论 -
IO流读文件,和多线程读文件 耗时对比
import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.Executors;import java.util.concurrent.ThreadPoolExecutor;impo原创 2021-04-21 18:05:39 · 608 阅读 · 1 评论 -
线程池创建
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.Executors;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;/** *线程池创建 */public class Demo1 { public static void main(String[] args) {.原创 2021-04-21 18:03:03 · 46 阅读 · 0 评论