1、程序:利用编程语言开发的一个工具软件,静态的,在没有启动运行之前只是磁盘中的一个普通文件。
2、进程:当一个程序进入内存就变成了进程,即进程是处于运行过程中的程序,具有一定的独立功能。
特征:独立性,动态性,并发性。
3、线程:被称为轻量级的进程,指运行过程中的调度单位,线程在程序中是独立的,并发执行的流。线程可以创建和撤销,具有就绪、阻塞和运行三种基本状态。
1、单线程:只有一条的执行走向线程,效率比较低,没有充分利用CPU。
2、多线程:多于一条的执行走向线程,共享内存,可以实现多任务。
例:访问网页时,应用服务器可以同时响应多个用户请求。
一段代码就好像是一座独木桥,任何时刻,只能有一个人在桥上走。
一张火车票只能卖给一位乘客。
4、进程与线程的区别与联系:
1、进程和线程都是一个控制流程,但是一个进程通常对应一个程序,而一个程序可以由多个不同的线程构成。
2、线程是进程中的实体,一个程序运行,至少有一个进程,一个进程里可以包含多个线程,但至少要包含一个线程。 5、为什么使用多线程?
1、进程之间不能享用内存,但线程之间可以共享内存。
2、系统创建进程需要重新分配系统资源,用多线程实现多个任务并发比进程效率高。
3、java中内置了多线程功能的支持,简化了java的多线程编程。
6、java线程的模型
1、抢占式调度模型:许多线程处于等待状态,但实际上只有一个线程在运行。该线程一直运行到它终止进入可运行状态,或另一个具有更高优先级的线程变成可运行状态。
2、java线程调度器支持不同优先级线程的抢先方式,但本身不支持相同优先级线程的时间片轮换,但是如果系统支持,java可以做到。
7、java线程优先级:java 提供了10个优先级,默认为0-9,但这些优先级需要操作系统的支持。不同操作系统上优先级并不相同,也不能很好地和java的10个优先级对应。优先级高的线程会获得较多的执行机会,但是优先级低的线程也可以先执行。
8、主线程:其他线程的运行必须要通过主线程来触发,由主线程开始,由主线程结束,可控制其他线程。
9、建立线程:
1、继承Thread类:定义Thread类的子类,并重写该类的run方法,该run方法的方法体就是代表了线程需要完成的任务;创建Thread类子类的实例;用线程对象的start方法来启动该线程。
优缺点:编写简单;但继承了Thread类,不能在继承其他类。
2、实现Runnable接口:Runnable适合多个相同程序代码的线程去处理同一资源的情况。实现Runable接口的实现类,并重写该接口的run方法;创建Runable实现类的实例,并以此实例作为Thread类的目标来创建Thread类的目标创建Thread对象,该Thread对象才是真正的线程对象。
优缺点:实现了Runnable接口,还可以继承其他类,适合多个线程来处理同一个资源的情况;编程相对复杂。
3、以匿名内部类创建:在一个方法中创建线程,当方法被调用时,线程启动。
10、如何知道线程是否已经结束
1、run方法执行完成,线程正常结束。
2、线程抛出一个未捕获的Exception或Error。
3、直接调用线程的结束方法,容易导致死锁。
isAlive方法:测试某条线程是否已经死亡,当线程处于创建,死亡两种状态时,该方法返回false
join()方法:调用这个方法的主线程,等待加入的子线程执行完成。
11、可以利用线程来完成一个小球运动的小程序,附图:
- 大小: 5.1 KB
分享到:
相关推荐
C#.net 同步异步 SOCKET 通讯和多线程总结 本文旨在总结 C#.net 中的同步异步 SOCKET 通讯和多线程编程,涵盖服务端和客户端的实现细节。 一、服务端实现 服务端使用 System.Net 和 System.Net.Sockets 命名空间...
【Windows多线程总结】 Windows操作系统提供了一套完整的API来支持多线程编程,使得开发者可以在同一进程中同时执行多个线程,实现并发处理任务。本文将深入探讨Windows多线程编程的基本概念、线程同步、线程池以及...
【JAVA多线程总结】 Java 多线程是Java编程中的关键特性,它允许程序同时执行多个任务,提高系统的效率和响应性。本篇总结涵盖了Java多线程的基础概念、创建与启动、线程调度、同步与协作以及新特性。 **一、Java...
C#.net同步异步SOCKET通讯和多线程总结 C#.net同步异步SOCKET通讯和多线程总结是指在C#.net环境下实现的同步异步套接字通信和多线程编程的总结。套接字(Socket)是tcp/ip网络协议接口,内部定义了许多的函数和例程...
### 总结 Java多线程提供了强大的并发处理能力,开发者可以通过继承`Thread`类或实现`Runnable`接口来创建和管理线程。正确使用`start()`方法而非`run()`方法是确保线程正确启动的关键。理解Java多线程的工作原理和...
### Java线程总结教程知识点详解 #### 一、操作系统与多线程概念 - **多任务与分时操作系统**:现代操作系统(如Windows、Linux)能够实现多任务处理,即在用户看来似乎多个应用程序在“同时”运行。实际上,这是...
C++多线程总结 本文档对C++多线程编程进行了总结,介绍了三种创建线程的方法:CreateThread函数、AfxBeginThread函数和_beginthread()/_beginthreadex()函数,同时对线程的管理和终止进行了详细的讲解。 ...
总的来说,Java线程总结的知识点涵盖了线程的基本概念、创建与管理、生命周期、同步机制、线程间通信以及线程的活跃性问题。理解和掌握这些知识点对于开发高效、稳定、并发的Java应用程序至关重要。
### 线程总结笔记——基于Linux环境下的线程控制与同步 #### 一、引言 本篇“线程总结笔记”主要针对Linux环境下多线程编程中的关键概念进行了整理与归纳,尤其是针对线程同步的问题进行了深入探讨。通过一个具体...
c# 多线程总结
在Windows应用程序开发中,MFC(Microsoft Foundation Classes)框架提供了对多线程的支持,使得开发者可以构建更加复杂的并发系统。MFC中的线程分为两类:工作者线程和用户界面线程,它们各自有不同的特性和用途。 ...
配合`JAVA多线程总结.ppt`,你可以得到一个更直观和简洁的概览,快速回顾和掌握上述关键知识点。虽然中文版翻译可能存在不足,但原版英文书籍通常能更准确地传达作者的意图和细节,值得深入阅读。
C#dotnet同步异步SOCKET通讯和多线程总结
本文将深入探讨Java多线程的相关知识点,包括线程的创建、线程的状态、同步机制以及线程安全问题。 1. **线程的创建** Java提供了两种创建线程的方式: - **继承Thread类**:自定义类继承Thread类,并重写run()...
Java线程是并发编程的核心部分,它允许程序在同一时间执行多个任务,极大地提高了程序的效率和响应速度。在Java中,实现多线程有两种主要方式:继承`Thread`类和实现`Runnable`接口。 1. 继承`Thread`类: 当创建...
JAVA线程总结,包含线程池,显示使用线程实现异步编程,基于JDK中的Future实现异步编程,JDK中的FutureTask等
本文将对C++中三种常见的线程创建方法进行总结,并讨论线程同步的相关知识。 1. 使用 `CreateThread` 函数生成的线程 - **函数原型**:`HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD ...
MFC(Microsoft Foundation Classes)是微软提供的一套C++库,用于简化Windows应用程序开发,它提供了对Windows API的封装,包括多线程支持。在MFC中,多线程分为两类:工作者线程(Worker Thread)和用户界面线程...