做一个购物商城网站多少钱,赚钱网页,建行官方网站登录,开淘宝网店的全流程1. 继承Thread类
通过创建一个继承自Thread类的子类#xff0c;然后覆盖run()方法来定义线程的执行逻辑。
class MyThread extends Thread {public void run() {// 线程执行的代码System.out.println(Thread is running);}
}public class Main {public static v…1. 继承Thread类
通过创建一个继承自Thread类的子类然后覆盖run()方法来定义线程的执行逻辑。
class MyThread extends Thread {public void run() {// 线程执行的代码System.out.println(Thread is running);}
}public class Main {public static void main(String[] args) {MyThread myThread new MyThread();myThread.start(); // 启动线程}
}2. 实现Runnable接口
通过创建一个实现Runnable接口的类然后将该类的实例传递给Thread类的构造函数。
class MyRunnable implements Runnable {public void run() {// 线程执行的代码System.out.println(Runnable is running);}
}public class Main {public static void main(String[] args) {MyRunnable myRunnable new MyRunnable();Thread thread new Thread(myRunnable);thread.start(); // 启动线程}
}3.实现Callable
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;class MyCallable implements CallableString {public String call() throws Exception {// 线程执行的代码并返回一个结果return Callable is running;}
}public class Main {public static void main(String[] args) {// 创建一个Callable任务CallableString callable new MyCallable();// 将Callable任务封装成一个FutureTaskFutureTaskString futureTask new FutureTask(callable);// 将FutureTask传递给Thread构造函数创建线程Thread thread new Thread(futureTask);thread.start(); // 启动线程try {// 获取线程执行结果String result futureTask.get();System.out.println(result);} catch (InterruptedException | ExecutionException e) {e.printStackTrace();}}
}4.线程池
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class ThreadPoolExample {public static void main(String[] args) {// 创建一个固定大小的线程池大小为3ExecutorService executorService Executors.newFixedThreadPool(3);// 提交任务给线程池for (int i 1; i 5; i) {final int taskId i;executorService.submit(() - {System.out.println(Task taskId is running on thread Thread.currentThread().getName());});}// 关闭线程池executorService.shutdown();}
}在这个例子中通过Executors.newFixedThreadPool(3)创建一个包含3个线程的固定大小线程池。然后通过executorService.submit()方法提交任务给线程池执行。最后调用executorService.shutdown()来关闭线程池。
线程池的好处包括 线程重用 可以重复使用已创建的线程减少线程创建和销毁的开销。 线程管理 线程池提供了一些方法来管理线程的生命周期例如启动、停止和等待。 资源控制 可以限制线程的数量以控制系统资源的使用。 性能提升 通过合理配置线程池的大小可以提高任务的执行效率。