1、两种实现形式,继承Thread类,实现Runnable接口,Thread也是实现了Runnable接口,Thread源码中有一个target对象,Runnable类型。可通过这种方法实现多个线程的资源共享,如下:
public class Main {
public static void main(String[] args) {
Runnable test = new TestThread();
new Thread(test).start();
new Thread(test).start();
}
}
/**
*
* @author Jerome
*/
public class TestThread implements Runnable {
int count = 0;
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(count++);
}
}
}
运行结果如下:
两个线程共享了变量count;
2、线程通过wait进入阻塞状态,即等待获取锁,一般的锁为this(当前线程)必须调用notify唤醒之后才能继续被分配cpu资料运行;
synchronized (this) {
this.wait();
}
this.notify();
wait()和notify()因为会对对象的“锁标志”进行操作,所以它们必须在synchronized函数或synchronized代码块中进行调用。
3、终止线程有3中方法,设置标志位(run方法运行正常退出),调用interrupt(),调用stop(),后面两种是让线程抛出异常而退出,不推荐;
4、sleep不会释放锁标志;
5、所谓的线程之间保持同步,是指不同的线程在执行同一个对象的同步代码块时,因为要获得对象的同步锁而互相牵制,不同对象不存在同步的问题;
6、synchronized 关键字能够修饰一个对象实例中的函数或者代码块。 在一个非静态方法中 this 关键字表示当前的实例对象。 在一个 synchronized 修饰的静态的方法中,这个方法所在的类使用 Class 作为实例对象
- 大小: 6.3 KB
分享到:
相关推荐
从多线程的基础、线程同步、线程间通信、线程调度、线程池、并发容器、线程安全的集合、原子变量等方面去罗列主要知识点,以思维导图的方式进行呈现,可以让读者更条理清晰的在最短的时间内掌握多线程的主要知识
### 多线程知识总结 #### 一、线程基础概念 **线程状态:** 在探讨多线程之前,我们需要了解线程的基本状态转换。一个典型的线程生命周期包括以下几个阶段: 1. **Start(启动):** 当线程被创建后调用`start()`...
Java多线程知识点整理.pdf
对Java线程总体知识的梳理,主要描述了关键知识点,可以梳理一下思路!
"Java多线程-知识点梳理和总结-超详细-面试知识点" Java多线程是Java编程语言中最基本也是最重要的概念之一。多线程编程可以提高程序的执行效率、改善用户体验和提高系统的可扩展性。但是,多线程编程也存在一些...
接下来,根据文件内容,可以整理出以下具体的多线程知识点: 1. 启动按钮:这可能指的是一种触发机制,通过按钮点击来启动多线程程序,开始任务的执行。 2. 信号量许可证:在易语言中创建信号量,作为控制多个线程...
使用思维导图方式,梳理了多线程整体结构,从多线程的介绍到创建线程、线程的生命周期、线程池、锁种类进行梳理。
java多线程
标题所指的知识点是“多线程编程的入门教程”,这意味着本文档是为那些刚接触多线程编程的初学者提供的基础教学材料。通过这个标题,我们可以推断文档内容会从最基础的多线程概念讲起,逐渐过渡到实际编程技巧和例子...
在Java中,`Thread`类和`Runnable`接口是实现多线程的基础,我们可以创建多个线程实例,分别绑定到不同的下载任务上。 然而,实现多线程断点续传需要解决几个问题: 1. **同步管理**:多个线程可能会同时访问同一个...
多线程知识学习整理一阶段
Java多线程和并发知识是Java开发中的重要组成部分,它涉及到如何高效地利用系统资源,尤其是在多核CPU环境下,合理地使用多线程可以显著提升应用程序的性能。 **1. 理论基础** 1.1 为什么需要多线程 多线程的引入...
内容概要:本文汇总了有关Java多线程方面的28个面试题目及其详细解答,涵盖了线程的基础概念、线程创建方法、线程控制(启动、同步、休眠、停止)、高级特性和应用技巧(线程局部存储、线程池、同步器等)。...
9. **线程安全的集合**:Java提供了一些线程安全的集合类,如`ConcurrentHashMap`, `CopyOnWriteArrayList`等,它们内部实现了线程同步,可以用于多线程环境。 10. **线程局部变量**:`ThreadLocal`类提供线程局部...
在实际开发中,理解并熟练掌握这些Java多线程知识对于编写高效、稳定且易于维护的并发代码至关重要。合理的线程管理和异常处理策略能够帮助开发者有效地处理并发环境中的错误和异常,确保程序的健壮性。此外,合理...
Java的思维导图模型,自己上课和下课的总结,不喜勿喷
一个线程组代表了一系列的线程。并且,一个线程组可以包括其他的线程组。除了初始线程组外,每个线程组都有一个父线程组,类似于树的结构。
随着现代处理器的生产工艺从提升...《Java多线程编程实战指南(核心篇)》适合有一定Java语言基础的读者作为入门多线程编程之用,也适合有一定多线程编程经验的读者作为重新梳理知识结构以提升认知层次和参考之用。
在C++笔试面试中,网络和多线程是两个经常被提及的重要知识点。本篇文档详细列举了关于网络部分的面试题目,同时也涉及了与多线程相关的TCP/IP协议栈的建立和断开过程。以下为详细的知识点总结: 1. TCP服务创建...