JAVA线程的三种简单实现

简介: JAVA并发编程的书有很多,对我胃口的就这一本:《Java并发编程从入门到精通》。 不厚,但从入门讲起。

JAVA并发编程的书有很多,对我胃口的就这一本:《Java并发编程从入门到精通》。


不厚,但从入门讲起。


今天实践了三种线程的简单实现。

b99511fd103cac74ce81df151390e21baf1519f9



ThreadA


package demo.thread;

public class ThreadA extends Thread {
	public void run() {
		super.run();
		try {
			Thread.sleep(500L);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("This is thread A.");
	}

}


ThreadB


package demo.thread;

public class ThreadB implements Runnable {
	public void run() {
		try {
			Thread.sleep(600L);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("This is thread B.");
	}

}


ThreadC


package demo.thread;

import java.util.concurrent.Callable;

public class ThreadC implements Callable<String> {
	public String call() throws Exception {
		try {
			Thread.sleep(500L);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("This is thread C.");
		return "thread C";
	}

}


ThreadMain


package demo.thread;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class ThreadMain {
	public static void main(String[] args) {
		ThreadA threadA = new ThreadA();
		threadA.start();
		
		ThreadB threadB = new ThreadB();
		new Thread(threadB).start();
		
		ThreadC threadC = new ThreadC();
		FutureTask<String> future = new FutureTask<String>(threadC);
		new Thread(future).start();
		
		System.out.println("This is main thread.");
		System.out.println("This is main thread begin.");
		
		try {
			System.out.println("threadC return value: " + future.get());
		} catch (InterruptedException e) {
			e.printStackTrace();
		} catch (ExecutionException e) {
			e.printStackTrace();
		}
		
		System.out.println("This is main thread end.");
	}

}


输出样子

e4cd97ac5e7e28737dc3db4a1d4c56a0718805b6


目录
相关文章
|
3天前
|
数据采集 存储 Java
高德地图爬虫实践:Java多线程并发处理策略
高德地图爬虫实践:Java多线程并发处理策略
|
5天前
|
安全 Java 调度
Java线程:深入理解与实战应用
Java线程:深入理解与实战应用
24 0
|
1天前
|
设计模式 安全 Java
【JAVA】Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
【JAVA】Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
|
1天前
|
安全 Java
【JAVA】线程的run()和start()有什么区别?
【JAVA】线程的run()和start()有什么区别?
|
2天前
|
缓存 Java
Java并发编程:深入理解线程池
【4月更文挑战第26天】在Java中,线程池是一种重要的并发工具,它可以有效地管理和控制线程的执行。本文将深入探讨线程池的工作原理,以及如何使用Java的Executor框架来创建和管理线程池。我们将看到线程池如何提高性能,减少资源消耗,并提供更好的线程管理。
|
2天前
|
消息中间件 缓存 NoSQL
Java多线程实战-CompletableFuture异步编程优化查询接口响应速度
Java多线程实战-CompletableFuture异步编程优化查询接口响应速度
|
3天前
|
缓存 Java
【Java基础】简说多线程(上)
【Java基础】简说多线程(上)
6 0
|
4天前
|
并行计算 算法 安全
Java从入门到精通:2.1.3深入学习Java核心技术——掌握Java多线程编程
Java从入门到精通:2.1.3深入学习Java核心技术——掌握Java多线程编程
|
4天前
|
安全 Java 编译器
是时候来唠一唠synchronized关键字了,Java多线程的必问考点!
本文简要介绍了Java中的`synchronized`关键字,它是用于保证多线程环境下的同步,解决原子性、可见性和顺序性问题。从JDK1.6开始,synchronized进行了优化,性能得到提升,现在仍可在项目中使用。synchronized有三种用法:修饰实例方法、静态方法和代码块。文章还讨论了synchronized修饰代码块的锁对象、静态与非静态方法调用的互斥性,以及构造方法不能被同步修饰。此外,通过反汇编展示了`synchronized`在方法和代码块上的底层实现,涉及ObjectMonitor和monitorenter/monitorexit指令。
18 0
|
4天前
|
监控 安全 Java
在Java中如何优雅的停止一个线程?可别再用Thread.stop()了!
在Java中如何优雅的停止一个线程?可别再用Thread.stop()了!
11 2