实现线程的方式:
- 实现Runnable接口
- 继承Thread对象
- 使用ExecutorService、Callable、Future实现有返回结果的多线程
public class MyThread { public static void main(String[] args) throws Exception { // 实现Runnable接口创建线程 Thread t1 = new Thread(new Runnable() { public void run() { // to do } }); t1.start(); // 继承Thread创建线程 Thread t2 = new Thread() { public void run() { // to do } }; t2.start(); // 实现callable接口,使用线程池启动线程 ExecutorService pool = Executors.newFixedThreadPool(2); // 创建多个有返回值的任务 List<Future<Integer>> list = new ArrayList<Future<Integer>>(); for (int i = 0; i < 2; i++) { Callable<Integer> c = new Callable<Integer>() { public Integer call() throws Exception { // to do return 0; } }; // 执行任务并获取Future对象 Future<Integer> f = pool.submit(c); list.add(f); } // 关闭线程池 pool.shutdown(); // 获取所有并发任务的运行结果 for (Future f : list) { // 从Future对象上获取任务的返回值,并输出到控制台 System.out.println(f.get().toString()); } } }
线程同步方式:
- 在方法上添加synchronized关键字, 如果加在静态方法上默认的lock为当前类的class, 如果加在非静态方法上则默认的lock为this
- 在代码块上添加synchronized关键字
- 使用信号量标记java.util.concurrent.Semaphore, 创建一个信号量标记,则一次只有一个线程执行
- 使用volatile关键字修饰要同步的变量(只能确保可见性,不能确保原子性。当只有一个写的线程时才可以使用)
- 使用ThreadLocal创建局部变量
- 使用java.util.concurrent.atomic包中的类创建同步变量, 如AtomicInteger
- 使用java.util.concurrent.locks包来创建锁, 通过编程方式获取和释放锁
public class TestThread{ private Object lock = new Object(); private Semaphore semaphore = new Semaphore(1); /** * 在代码块上加锁 */ public void test1() { synchronized(lock) { // to do } } /** * 在非静态方法上添加synchronized,以this作为锁 */ synchronized public void test2() { // to do } /** * 在静态方法上添加synchronized,以 TestThread.class作为锁, 号称“静态锁” */ synchronized public static void test3{ // to do } /** * 使用信号标记来控制执行的线程数量 */ public void test4() { semaphore.acquire();// 获取信号标记的线程才会继续执行 // to do semaphore.release(); // 执行完后释放信号标记 } }
相关推荐
【JAVA多线程总结】 Java 多线程是Java编程中的关键特性,它允许程序同时执行多个任务,提高系统的效率和响应性。本篇总结涵盖了Java多线程的基础概念、创建与启动、线程调度、同步与协作以及新特性。 **一、Java...
Java多线程是Java编程语言中的一个重要特性,它允许开发者创建并发执行的多个线程,从而提高程序的执行效率和响应速度。Java中实现多线程主要有两种方式:继承Thread类和实现Runnable接口。 ### 继承Thread类 在...
Java多线程是Java编程中的核心概念,它允许程序同时执行多个任务,提高了程序的效率和响应速度。本文将深入探讨Java多线程的相关知识点,包括线程的创建、线程的状态、同步机制以及线程安全问题。 1. **线程的创建*...
配合`JAVA多线程总结.ppt`,你可以得到一个更直观和简洁的概览,快速回顾和掌握上述关键知识点。虽然中文版翻译可能存在不足,但原版英文书籍通常能更准确地传达作者的意图和细节,值得深入阅读。
Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...
Java多线程是指在Java语言中同时运行多个线程,从而实现对任务的并行处理。这是Java中一个非常重要的概念和技能,尤其在需要高并发处理和优化性能的场景中显得尤为重要。以下将详细梳理Java多线程编程中的一些关键...
Java多线程是Java编程语言中的一个重要特性,它允许在单个程序中同时执行多个代码路径,从而提高程序的效率和响应性。在Java中,线程生命周期包括六种状态:新建状态(NEW)、可运行状态(RUNNABLE)、休眠状态...
Java多线程是Java编程中的一个核心概念,它在现代软件开发中扮演着至关重要的角色。多线程允许程序同时执行多个任务,提高了系统资源的利用率,提升了应用程序的响应速度和并发性能。对于大型分布式系统、Web应用...
java多线程思维导图总结【超详细,可下载】
### Java多线程编程总结 #### 一、Java线程:概念与原理 1. **操作系统中线程和进程的概念** - 当前的操作系统通常为多任务操作系统,多线程是实现多任务的一种手段。 - **进程**:指内存中运行的应用程序,每个...
### Java多线程编程总结 #### 一、Java线程:概念与原理 - **操作系统中线程和进程的概念** 当前的操作系统通常都是多任务操作系统,多线程是一种实现多任务的方式之一。在操作系统层面,进程指的是内存中运行的...
### Java多线程分页查询知识点详解 #### 一、背景与需求分析 在实际的软件开发过程中,尤其是在处理大量数据时,如何高效地进行数据查询成为了一个关键问题。例如,在一个用户众多的社交平台上,当用户需要查看...
java多线程全面总结,简单的介绍多线程技术中的各种应用问题,是你对多线程有更多的认识!
JAVA 多线程总结 扩展java lang Thread类 实现java lang Runnable接口
总结起来,“JAVA多线程编程技术PDF”涵盖了多线程的基本概念、同步机制、线程通信、死锁避免、线程池以及线程安全的集合类等内容。通过深入学习这份资料,开发者可以全面掌握Java多线程编程技术,提升程序的并发...
总结一下,Java多线程涉及的内容广泛,包括线程的基本概念、创建、状态转换、调度和优先级管理。理解并掌握这些知识点对于编写高效并发的Java程序至关重要,也是面试中必不可少的技术点。在实际编程中,合理利用多...
总结来说,这个实验源码涵盖了Java多线程的基础和应用,包括线程的创建、运行、同步、通信,以及网络编程和数据库操作。通过这些实验,学生可以深入理解Java并发编程的核心概念,并掌握实际开发中的多线程设计技巧。
Java多线程程序设计是Java开发中的重要组成部分,它允许程序在同一时间执行多个任务,从而提高了系统的效率和响应性。本文将深入探讨Java多线程的相关概念和实现方式。 一、理解多线程 1. **线程定义**:线程是一...