标签:read i++ void 线程阻塞 线程 nts xtend 很多 over
使用新线程的步骤:
run
方法,配置新线程需要做的事情new YourThread()
start
创建新线程的方法有很多,下面是一个示例:
class MyThread extends Thread { @Override public void run () { System.out.println("在新的线程内运行的任务。这任务是独立的,不会影响主线程代码执行。"); } } public class Main { public static void main (String... args) { Thread myThread = new MyThread(); // 创建线程 mythread.start(); // 运行线程 } }
也可以这样:
class MyThread implements Runnable { @Override public void run () { System.out.println("在新的线程内运行的任务。这任务是独立的,不会影响主线程代码执行。"); } } public class Main { public static void main (String... args) { Thread myThread = new Thread(new MyThread()); // 创建线程 mythread.start(); // 运行线程 } }
上面代码可以简写为:
// 使用匿名内部类进行简化 public class Main { public static void main (String... args) { Thread myThread = new Thread () { @Override public void run () { System.out.println("在新的线程内运行的任务。这任务是独立的,不会影响主线程代码执行。"); } }; myThread.start(); } }
使用 jdk8 的语法,甚至可以简化为:
public class Main { public static void main (String... args) { new Thread(() -> System.out.println("task")).start(); } }
其他:
线程池使用的基本语法:
// 1. 创建线程池 ExecutorService service = Executors.newCachedThreadPool(); // 2. 创建任务 Runnable task = new Runnable() { @Override public void run() { System.out.println(Thread.currentThread()); } }; // 3. 使用线程池调度任务 for (int i = 0; i < 1000; i++) { service.execute(task); } // 4. 关闭线程池 service.shutdown();
可以简化为:
ExecutorService service = Executors.newCachedThreadPool(); for (int i = 0; i < count; i++) { service.execute(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread()); } }); }
可以进一步简化为(jdk8语法):
ExecutorService service = Executors.newCachedThreadPool(); for (int i = 0; i < count; i++) { service.execute(() -> System.out.println(Thread.currentThread())); }
标签:read i++ void 线程阻塞 线程 nts xtend 很多 over
原文地址:https://www.cnblogs.com/nongzihong/p/10010353.html