1. 线程和进程的区别?
1)什么是进程:例如一个exe文件,一个class文件,一个QQ程序,一个ppt
每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销。
2)什么是线程:一个程序里的执行路径。(一个程序内部的顺序控制流)
线程可以看做是轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器,线程切换的开销小。
3)多进程:在操作系统中能通知运行多个任务(程序),如QQ, PPT, Word, ...
4)多线程:在同一应用中有多个顺序流同时执行。
2.如何实现一个线程?
1)JVM启动时,主方法(public static void main() {})会启动一个线程。
2)线程具体的执行逻辑由Thread类的实例的run()方法来实现。
3)start()方法:启动一个线程。
3. 创建线程的两种方式:
1)实现Runnable接口:
实现Runnable接口的类要实现run()方法
然后在主线程中这样使用:Thread t1 = new Thread(MyThread); //MyThread为实现了Runnable接口的类
2)继承Thread类
MyThread t1 = new MyThread(); //MyThread是继承了Thread的类。
4. 线程的状态:
5. 线程控制的基本方法:
1)Thread.sleep(long millis):Thread类的static方法,让当前线程睡眠多少毫秒。
sleep方法不释放对象锁
2)stop(): 废弃了的方法,暴力地终止线程,并未关闭资源,相当于杀死线程。
3)join(): 相当于方法调用,执行完join方法的对象的线程,才能执行其他的线程。
join()方式示例:
public class TestJoin {
public static void main(String[] args) {
MyThread2 t1 = new MyThread2("abcde");
t1.start();
try {
t1.join();
} catch (InterruptedException e) {}
for(int i=1;i<=10;i++){
System.out.println("i am main thread");
}
}
}
class MyThread2 extends Thread {
MyThread2(String s){
super(s);
}
public void run(){
for(int i =1;i<=10;i++){
System.out.println("i am "+getName());
try {
sleep(1000);
} catch (InterruptedException e) {
return;
}
}
}
}
在使用了jion()方法之后,只有当t1执行完后,才会去继续执行main方法。
4)yield(): 让出CUP, 给其他线程执行的机会,当前线程进入就绪队列等待调度。
注:当前线程仅让出一下,然后还参与竞争CUP.
5)wait(): 让当前线程进入等待池(wait pool)
6)notify()/notifyAll():
====================
多线程学习可参考: http://blog.csdn.net/lonelyroamer/article/details/7948329
- 大小: 15.4 KB
分享到:
相关推荐
通过深入学习和实践这些Java线程基础知识,你可以有效地编写出高效、安全的多线程程序。记住,理解线程的原理和掌握同步机制是关键,这将有助于解决复杂的并发问题。阅读"Java线程.pdf"文档,你将获得更详细、全面的...
### Java线程学习知识点 #### 一、Java线程概览 - **定义与作用**:线程是在程序中独立且并发执行的路径。在Java中,线程被设计为语言的一部分,而不是作为操作系统的底层工具。每个Java程序至少包含一个主线程,在...
### Java线程教程知识点梳理 #### 一、教程概述 - **目标读者**: 本教程主要面向具备丰富Java基础知识但缺乏多线程编程经验的学习者。 - **学习成果**: 学习者能够掌握编写简单的多线程程序的能力,并能够理解和...
总的来说,"JAVA线程学习(源代码)"涵盖了Java线程的基础知识和高级特性,包括线程的创建、管理、同步和通信。通过分析和实践这些源代码,你可以深入了解Java并发编程的精髓,提高你的多线程编程能力。
这套课程既可以作为从零基础开始...课程的主要内容涉及有JAVA基础课程、JAVA多线程与并发编程、数据库开发基础和进阶、Spring Framework、Spring进阶、Spring MVC框架、Spring boot、Java常用类库、Java异常处理等等
在学习Java多线程的过程中,理解线程与进程的概念是非常基础且重要的一步。首先,进程是一个程序的执行实例,是操作系统资源分配的基本单位,具有独立的地址空间和运行状态。每个进程至少包含一个线程,我们称之为...
Java线程API是Java编程语言中的一个重要组成部分,它允许开发者在一个程序中同时执行多个任务,提高了应用程序的效率和响应性。...通过深入阅读"Java线程.pdf"文档,可以进一步学习这些概念的细节和实践应用。
以上就是Java多线程基础学习的一些关键知识点,理解并掌握这些内容对于进行高效的多线程编程至关重要。在实际开发中,还需要根据具体需求选择合适的线程模型和同步机制,以实现高效、安全的并发程序。
### Java多线程学习资料知识点解析 #### 一、引言 Java作为一种广泛使用的编程语言,在并发编程领域具有独特的优势。多线程是Java中实现并发处理的核心技术之一,能够显著提升程序的性能和响应性。本文将深入探讨...
#### 一、Java线程基础 **Java线程的重要性:** Java语言支持多线程机制,这是开发高性能应用的关键之一。多线程可以让程序执行更高效,尤其在处理复杂的计算任务或者提高用户界面的响应速度方面。 **线程的概念:...
一、多线程基础 1. 线程与进程:在操作系统中,进程是资源分配的基本单位,而线程是程序执行的基本单位。每个进程至少有一个主线程,多个线程可以共享进程内的资源。 2. 创建线程:Java提供了两种创建线程的方式:...
通过学习这个Java线程使用教程,你将能够熟练地在多线程环境中编写高效、安全的Java程序,理解线程同步、通信、线程池以及并发工具类的使用。阅读提供的"Java线程.pdf"和"说明.txt"文件将帮助你更深入地掌握这些知识...
Java线程学习笔记涉及了Java多线程编程的多个关键知识点,本篇知识点整理将详细解释每个概念及其在Java中的实现方式。 基本知识部分包含了Java线程编程的基础内容,它们是并发编程的基石。 任务Runnable是一个接口...
Java线程是多任务编程的重要概念,它允许程序同时执行多个独立的任务,从而...在"线程池.rar"和"线程实例"这两个文件中,你可以找到关于这些概念的具体示例代码,通过学习和实践,可以深入理解Java线程的运用和管理。
1. **线程基础**:首先,书中可能会介绍线程的基本概念,包括进程与线程的区别,以及Java中创建线程的两种方式:继承Thread类和实现Runnable接口。此外,还会讲解线程的状态(新建、可运行、运行、阻塞和死亡)及其...
#### 一、Java线程基础知识概述 **1.1 什么是线程?** 线程是程序执行流的最小单元,是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。在Java中,线程是一种轻量级的进程,...
本教程不仅提供了对Java线程基础概念的全面介绍,还深入探讨了如何有效地利用线程来解决实际问题。通过学习这些知识点,开发者可以更好地理解和应用多线程编程技巧,从而编写出高性能、高可靠性的Java应用程序。
4. 多线程:在10多线程.md中,介绍了如何创建和管理Java线程,包括Thread类、Runnable接口,以及同步机制如synchronized关键字、wait()、notify()和notifyAll()方法。多线程技术是实现并发执行的关键,有助于提高...
这些知识点覆盖了Java线程编程的基础到高级应用,对于Java开发者来说,理解和掌握这些内容对于编写高效、安全的并发程序至关重要。通过深入学习和实践,开发者能够更好地应对多线程环境下的挑战。
1. **线程基础**:书中首先会介绍Java多线程的基础知识,包括线程的创建方式(如通过`Thread`类或实现`Runnable`接口)、线程的生命周期(新建、就绪、运行、阻塞和死亡),以及如何启动和停止线程。 2. **线程同步...