Java多线程——线程的创建方式 摘要:本文主要学习了线程的创建方式,线程的常用属性和方法,以及线程的几个基本状态. 部分内容来自以下博客: https://www.cnblogs.com/dolphin0520/p/3913517.html https://www.cnblogs.com/trust-freedom/p/6606594.html 线程的创建 Thread类和Runnable接口 Thread类实现了Runnable接口,实现了Runnable接口里的run()方法. 事实上,查…
目录 Java:多线程概述与创建方式 进程和线程 并发与并行 多线程的优势 线程的创建和启动 继承Thread类 start()和run() 实现Runnable接口 实现Callable接口 创建方式的区别 Java:多线程概述与创建方式 在之前的学习过程中,已经不止一次地提到了并发啊,线程啊,同步异步的内容,但是出于内容的局部一体,之前总是几笔带过,并附上:以后学习的时候再细说. 那么,现在到了细说的时候,在翻阅并参考了介绍Java并发编程的书之后,突然感觉压力有些大,因为有些概念确实比较抽…
第一种 继承Thread类 自定义类,继承Thread类,并重写run()方法. class MyThread1 extends Thread { @Override public void run() { System.out.println("第一种方式Thread " + Thread.currentThread().getName()); } } public class Test { public static void main(String[] args) throws…
线程的创建方式 1.继承Thread类,重写run方法,示例如下: 1 class PrimeThread extends Thread { 2 long minPrime; 3 PrimeThread(long minPrime) { 4 this.minPrime = minPrime; 5 } 6 7 public void run() { 8 // compute primes larger than minPrime 9 . . . 10 } 11 } 12 PrimeThread p…
多线程的概念:略 多线程的目的:提高效率 主线程: package demo; //主线程 public class Demo { public static void main(String[] args) { function(); System.out.println(1); } public static void function(){ for (int i = 0; i < 10000; i++) { System.out.println(i); } } } 这段简单的代码,我们发现…
线程创建方式三:实现callable接口 代码示例: import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.concurrent.*; /** * @Description 线程创建方式三:实现callable接口 * @Author hzx * @Date 2022-03-26 */ class…
1.继承Thread类: Thread 类本质上是实现了 Runnable 接口的一个实例,代表一个线程的实例. 启动线程的唯一方法就是通过 Thread 类的 start()实例方法. start()方法是一个 native 方法,它将启动一个新线程,并执行 run()方法. 2.实现Runnable接口: 如果自己的类已经 extends 另一个类就无法直接 extends Thread,此时可以实现一个Runnable 接口. Runnable类中的run方法没有返回值. 以上两中方式st…
A extends Thread: 简单 不能再继承其他类了(Java单继承) 同份资源不共享 A implements Runnable:(推荐) 多个线程共享一个目标资源,适合多线程处理同一份资源. 该类还可以继承其他类,也可以实现其他接口. 我的总结: 实现方式,因为避免了单继承的局限性,所以创建线程建议使用第二种方式. Eg: package july7; //线程卖票的例子 class SellTicket extends Thread{ private String name; pr…
java中创建线程有四种方式,分别是:继承Thread类,重写run方法,然后创建线程对象并调用start方法.实现Runnable接口,实现run方法,然后创建线程对象并传入Runnable实例,再调用start方法.实现Callable接口,实现call方法,然后创建FutureTask对象并传入Callable实例,再创建线程对象并传入FutureTask对象,最后调用start方法和get方法.使用线程池ExecutorService,通过submit或execute方法提交Runnab…
1.继承Thread类方式 这种方式适用于执行特定任务,并且需要获取处理后的数据的场景. 举例:一个用于累加数组内数据的和的线程. public class AdditionThread extends Thread { private int sum = 0; private int[] nums; ​ public AdditionThread(int[] nums, String threadName) { super(threadName); this.nums = nums; } ​…