线程实现的三种方法

 时间:2024-10-12 09:06:59

1、范例 :继承Thread类:Thread类是在java.lang包中定义的,继承Thread类必须重写ru荏鱿胫协n()方法定义格式如下:package cn.test;class MyThread extends Thread{private String str;public MyThread(String str){this.str = str;}public void run() {for (int i = 0; i < 10; i++) {System.out.println(this.str+"="+i);}}}public class Test {public static void main(String[] args) {new MyThread("线程一").start();new MyThread("线程二").start();new MyThread("线程三").start();}}线程所有处理都在run()中进行定义,线程启动是调用start()方法,才是真正启动线程,而启动start()方法时会自动调用run()方法

2、范例: 实现runnable接口:package cn.test;class MyThread implements Runnable{private String str;public MyThread(String str){this.str = str;}public void run() {for (int i = 0; i < 10; i++) {System.out.println(this.str+"i="+i);}}}public class Test {public static void main(String[] args) {Thread t1 = new Thread(new MyThread("线程一:"));Thread t2 = new Thread(new MyThread("线程二:"));Thread t3 = new Thread(new MyThread("线程三:"));t1.start();t2.start();t3.start();}}

3、范例:实现Callable接口package cn.test;import java.util.concurrent.Callable;i罪焐芡拂mport java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;class MyThread implements Callable<String>{private String title;public MyThread(String title){this.title = title;}public String call()throws Exception{for (int i = 0; i < 10; i++) {System.out.println(title+"i="+i);}return "线程执行完毕";}}public class Test {public static void main(String[] args) throws InterruptedException, ExecutionException {FutureTask<String> task1 = new FutureTask<>(new MyThread("线程一"));FutureTask<String> task2 = new FutureTask<>(new MyThread("线程二"));new Thread(task1).start();new Thread(task2).start();System.out.println("线程返回数据一"+ task1.get());System.out.println("线程返回数据二"+ task2.get());}}

  • 电脑上如何下载bilibili(B站)的视频
  • 哔哩哔哩中怎么修改离线缓存的位置
  • 如何正确下载央视频APP中的高清视频及直播源
  • b站缓存的视频在哪个文件
  • 怎么把腾讯视频的qlv格式转换为mp4格式?
  • 热门搜索
    四川旅游学校 韶关旅游景点 约伴旅游网 端午节去哪里旅游好 去云南旅游最佳路线 夕阳红老年旅游团 关岛旅游 象山旅游攻略 常州旅游景点大全 全国旅游年票