`

java高级--线程的基本知识

阅读更多
线程的基本知识
1.程序  进程  线程 
程序:硬盘上一组相关联的的文件的集合,该文件是可执行的
一个程序内部可能包含多个进程
进程:正在运行的程序。一个程序执行后,可以启动多个进程。
线程:一个进程内部并行的运行单元

2.线程继承的步骤:
1.继承thread
2.调用run方法
3.如果线程需要外部参数,只能通过构造方法传进去
4.调用start方法启动线程

3.线程的创建和启动
3.1 线程的创建 方式一:继承Thread类
class A extends Thread{
public void run(){
}
}
调用线程
A a= new A();
a.start();

       ***********************************

3.2  方式二:实现runnable接口
class   B implements Runnable{
public void run(){
}
}


runnable方式的调用
1.创建runnable对象

2.将runnable对象包装成Thread对象;

3.启动包装后的对象

B b = new B();
Thread t = new Thread();
t.start();

---------------------------
3.3  通过定时任务启动线程
1、定义一个定时任务类
public c extends TimerTask{
public void run(){

}
}

2、调用定时任务
创建定时器对象
Timer time = new TImer();

创建任务对象
C c= new C();

执行定时任务
t.schedule(c,1000,2000)
//延迟一秒执行,之后每隔2秒执行一次

***********************************

4.线程的状态:
new Thread(创建状态):当线程对象被创建的时候
Runnabl(就绪、可运行状态):当调用完线程的start()后
Running(运行时状态):线程的run方法正在执行
not Running(挂起状态,非运行状态,阻塞状态,暂停状态):·线程处于sleep,wait的时候
Dead(死亡状态,终止状态):线程的run方法执行完毕,自然终止

5.线程的通信
监视线程
生产/消费   wait/notify机制

6.同步和异步(线程有自己的内存,共享的是进程的内存)
同步:线程不同时运行,有先后顺序(在一些特定的地方要求线程同步,例如:银行取钱,买票)

异步:线程并行,某个程度指 线程同时运行

线程同步的实现
1,锁住某个代码块
synchronize(需要同步的对象){
需要同步的代码
}
2,锁住某个方法
public synchronize voi(){
方法体;
}
3,使用所对象
Lock l = new Lock();//创建锁

l.lock();//上锁

需要同步的代码块;

l.unlock();//解锁

5.线程的暂停,停止模型
线程的暂停:
sleep(1000);//休眠1000毫秒
wait();

线程的停止:必须是run方法自然结束

多线程游戏需要暂停
run(){
while(是否停止){
if(是否暂停){
逻辑代码
}
}
}
0
0
分享到:
评论

相关推荐

    JAVA线程高级-线程按序交替执行

    在Java编程中,多线程是并发编程的重要组成部分,它允许程序同时执行多个任务,从而提高了系统的效率和响应性。...通过熟练掌握上述知识点,开发者可以更好地驾驭Java的多线程环境,实现高效的并发编程。

    Java高级特性 - 多线程练习题.zip

    在Java编程语言中,多线程是其一个重要的高级特性,它使得程序可以在同一...以上知识点在"Java高级特性 - 多线程练习题.zip"中可能会有所体现,通过分析这两个文本文件,我们可以加深对Java多线程的理解和实践能力。

    java课件-5-多线程

    总之,Java多线程编程是一个深度和广度都非常大的主题,涵盖了从基础的线程创建到复杂的并发控制策略,理解并熟练掌握这些知识对于编写高效、可靠的并发Java应用程序具有决定性的影响。通过学习提供的课件和实战练习...

    精通Java--JDK、数据库系统开发、Web开发基础与实例

    本书旨在帮助读者深入理解和熟练掌握Java语言,从基础到高级,从理论到实践,全方位提升Java开发技能。 首先,书中详细介绍了Java编程环境的搭建,包括如何下载和安装JDK(Java Development Kit),这是Java开发的...

    Java多线程-知识点梳理和总结-超详细-面试知识点.docx

    本文从Java多线程的基本概念开始,逐步深入到Java多线程的高级话题,涵盖了Java多线程的所有方面,包括volatile关键字、Java内存模型、Happens-Before关系、synchronized关键字、ConcurrentHashMap、...

    人工智能-项目实践-多线程-java基础进阶 包括:socket,多线程,反射,servlet,动态代理等高级知识.zip

    人工智能-项目实践-多线程-java基础进阶。包括:socket,多线程,反射,servlet,动态代理等高级知识 java基础进阶。包括:socket,多线程,反射,servlet,动态代理等高级知识

    完整版Java全套入门培训课件 Java基础 05-多线程(共12页).rar

    通过本套Java基础培训课件,你将全面理解Java多线程的概念、机制以及实际应用,为后续的高级编程和系统级开发打下坚实的基础。学习过程中,结合实践案例进行练习,将有助于更好地理解和掌握这些知识点。

    Java编写线程动画

    理解线程动画首先需要掌握Java线程的基础知识。 1. **线程基础** - **线程定义**:线程是程序执行的流,一个进程中可以有多个并发执行的线程。 - **创建线程**:Java中可以通过继承Thread类或实现Runnable接口来...

    Java-多线程教学文档

    总结起来,Java多线程编程涵盖了从基本概念到高级特性的广泛知识,开发者需要深入理解线程的创建、管理和同步,以及如何利用Java提供的并发工具解决实际问题。不断学习和掌握新的并发编程技术,才能更好地适应Java...

    java面试-JVM+多线程三个版本面试题,全集.zip

    面试中可能涉及的多线程知识包括: 1. **线程创建**:讲解如何使用Thread类和Runnable接口创建线程,以及它们的区别。 2. **线程同步**:synchronized关键字、wait/notify机制、Lock接口(如ReentrantLock)是如何...

    thread.zip--狂神多线程+juc

    《狂神多线程+juc》是一份针对Java并发编程深度学习的资源包,主要涵盖了Java多线程基础以及Java并发工具集(JUC)的高级应用。在Java编程中,多线程是提高程序效率、实现并发执行的重要手段,而JUC(Java ...

    java 高级理论-5

    首先,"Java私塾Java高级-理论部分-5.avi"可能是一个视频教程,它深入讲解了第五个主题的高级Java概念。这个主题可能包括多线程、并发编程、垃圾回收机制、反射、动态代理、设计模式等。多线程是Java的一个重要特性...

    JAVA高级工程师知识图谱_JAVA工程师知识图谱_java图谱_知识图谱_

    **JAVA高级工程师知识图谱详解** 在信息技术领域,JAVA作为一种广泛应用的编程语言,对于成为一名优秀的JAVA高级工程师,需要掌握的知识点广泛且深入。本知识图谱涵盖了JAVA开发的关键概念、技术框架、工具库以及...

    图解java多线程设计模式-结城浩-完整高清带书签版本

    总之,《图解Java多线程设计模式》是一本深入浅出的多线程编程指南,它不仅涵盖了Java多线程的基础知识,还深入探讨了高级主题和最佳实践,对于想要提升并发编程能力的Java开发者来说,是一本不可多得的参考书。...

    Java核心技术-卷1(基础知识-原书第10版)

    通过阅读《Java核心技术-卷1(基础知识-原书第10版)》,读者可以系统地学习到Java编程的基础,并为进一步深入学习Java高级特性和开发实际项目打下坚实基础。书中的实例代码和练习题有助于巩固理论知识,提升实践能力...

    java 高级理论-4

    本学习资料主要针对已经掌握了Java基础知识的学员,旨在深入理解Java的核心概念和技术,包括面向对象的深入解析、多线程、集合框架、异常处理、IO流、反射、注解等主题。 1. **面向对象的深入解析**: - 抽象:...

    Java 模拟线程并发

    除了基本的线程创建,Java还提供了synchronized关键字用于线程同步,防止多个线程同时访问共享资源导致数据不一致。synchronized可以修饰方法或代码块,当一个线程正在执行synchronized代码时,其他线程必须等待。 ...

    java高级理论-9

    【Java高级理论】是Java开发领域中的重要组成部分,它涵盖了Java语言进阶的主题,包括但不限于多线程、并发编程、JVM内存模型、反射、IO流、网络编程、设计模式等核心概念。这些理论知识是Java程序员从初级迈向高级...

    java72-java-advance源代码.zip

    数字"72"可能是版本号或者是某种编码方式,而"java-advance"则暗示这包含了Java的进阶内容,可能包括一些复杂的数据结构、多线程、网络编程、I/O操作或者其他高级特性。 【描述分析】 描述中的"java72-java-advance...

    JAVA高级知识点整理.rar

    通过深入学习这些Java高级知识点,开发者可以更好地应对复杂的软件工程问题,提高代码质量,优化系统性能,并为向更高级的架构师角色迈进打下坚实基础。"JAVA高级知识点整理.pdf"这份资料将详细阐述这些主题,是Java...

Global site tag (gtag.js) - Google Analytics