1.什么是线程:
答:线程就是程序中单独顺序的流控制,线程本身不能运行,它只能用于程序中。
线程是程序内的顺序控制流,只能使用分配给程序的资源和环境。
2.什么是多线程:
答:多线程则指的是在单个程序中可以同时运行多个不同的线程执行不同的任务。
3.多线程编程的目的:
答:就是"最大限度地利用CPU资源",当某一线程的处理不需要占用CPU,而只和I/0等资源打交道时,
让需要占用CPU资源的其它线程有机会获得CPU资源。从根本上说,这就是多线程编程的目的。
4.一个进程可以包含一个或多个线程,
一个程序实现多个代码同时交替运行就需要产生多个线程,
CPU随机的抽出时间,让我们的程序一会做这件事情一会做另外一件事情。
5.基于进程的多任务处理是更熟悉的形式。进程(process)本质上是一个执行的程序。因此基于进程的多任务处理的
特点是允许你的计算机同时运行两个或更多的程序。具体来说,基于进程的多任务处理使你在运用文本编辑器的时候
可以同时运行Java编译器。在基于进程的多任务处理中,进程是调度程序所分派的最小代码单元。
6.基于线程(thread-based)的多任务处理环境中,线程是最小的执行单元。这意味着一个程序可以同时执行两个或者
多个任务的功能。例如:一个文本编译器可以再打印的同时格式化文本。
7.多个进程的内部数据和状态都是完全独立的,而多个线程是共享一块内存空间和一组系统资源,有可能互相影响。
8.线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程的切换的负担要小。
9.多线程程序比多进程程序需要更少的管理费用。进程是重量级的任务,需要分配给它们独立的地址空间。进程间通信
是昂贵和受限的。进程间的转换也是很需要花费时间的。另一方面,线程是轻量级的选手,它们共享相同的地址空间
并且共同分享同一个进程。线程间通信是便宜的,线程间的转换也是低成本的。
10.java的线程模型
java多线程的优点就在于取消了主循环/轮询机制。一个线程可以暂停而不影响程序的其他部分。
例如:当一个线程从网络读取数据或等待用户输入时,产生的空闲时间可以被利用到其他地方。
11.多线程的优势
a.java运行系统在很多方面依赖于线程,所有的类库设计都考虑到多线程。实际上,java使用线程来使整个环境
异步。这有利于通过防止CPU循环的浪费来减少无效部分。
b.为更好地理解多线程环境的优势,我们可以将它与它的对照物相比较。单线程系统的处理途径是使用一种叫做
轮询的事件循环方法。在该模型中,单线程控制在一无限循环中运行,轮询一个事件序列来决定下一步做什么,
一旦轮询装置返回信号表名已准备好读取网络文件,事件循环调度控制管理到适当的事件处理程序。直到事件
处理程序。直到事件处理程序返回,系统中没有其他事件处理程序。这就浪费了CPU时间。这导致了程序的一
部分独占了系统,阻止了其他事件的执行。总的来说,单线程环境,当一个线程因为等待资源时阻塞(block,
挂起执行),整个程序停止运行。
12.start有两个作用:
a.为线程的启动准备资源
b.在一定时候会调用run()方法
13.多线程的一个特点:
当程序一旦启动以后,它的执行就不受你的控制了。
14.线程的结束:
线程的消亡,不能通过调用一个stop()命令,而是让run()方法自然结束。run方法执行完毕,线程就退出了。
//线程的启动/开启方式
public class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("Thread executed:" + i);
}
}
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.run();//直接调用方法,相当于调用一个普通类的方法
System.out.println("---------------------------");
//thread.start();//启动一个线程的一个方法
}
}
说明:调用线程的start方法是开启一个线程,而直接调用线程的run方法是直接运行方法,而不是开启线程。
创建一个线程的两种方法:继承Thread类---------->Thread implements Runnable
实现Runnable接口
相关推荐
本文将基于“C#多线程系列教程”这一主题,深入探讨多线程的基本概念、原理以及在C#中的具体应用,旨在为初学者、开发人员以及对多线程技术感兴趣的程序员提供全面、系统的知识体系。 ### C#多线程基础 #### 1. 多...
### C#多线程系列教程知识点概述 #### 一、多线程基础概念 - **线程与进程**:在计算机科学中,进程是程序的一次执行过程,而线程则是进程中可独立调度和执行的基本单位。每个进程至少包含一个线程。 - **线程的...
【C#线程系列讲座笔记整理】 一、线程基础 线程是操作系统中的基本执行单元,它在进程中运行,允许同一程序同时处理多个任务。在C#中,线程可以用于提高应用程序的并发性和响应性,特别是在多核处理器环境下。通过...
在这个"Java线程系列操作"的资料中,我们可以看到三个示例文件:ThreadPoolDemo.java、SyncDemo2.java和ThreadDemo2.java,它们分别涉及到线程池和同步机制等关键概念。 1. **线程基础** - **创建线程**:在Java中...
### C#多线程系列教程知识点详解 #### 进程与线程的概念解析 - **进程**:在计算机科学中,进程是操作系统为程序分配资源的基本单位,它包含了正在执行的程序及其所需的内存和系统资源。一个进程可以视为一个独立的...
《C#线程系列讲座剖析》 在C#编程中,线程是多任务并行执行的核心机制。线程池的引入,是为了更高效地管理和调度线程资源,避免频繁创建和销毁线程带来的开销。线程池通过预先创建一定数量的线程,为后续的任务提供...
本系列教程“自作线程系列,小游戏摇奖机”就是针对线程这一主题,通过一个趣味性的摇奖机游戏来帮助初学者理解并掌握线程的基本概念和操作。 首先,我们需要了解什么是线程。在单个进程中,线程是执行代码的独立...
Java多线程系列第二部分主要关注的是对象变量的并发访问问题。在多线程环境中,对象变量的访问可能会引发数据不一致性或数据污染,因此理解线程安全与线程不安全的概念至关重要。 线程安全是指当多个线程同时访问一...
C#线程系列讲座(4):同步与死锁 本文将讲述C#中的线程同步机制,解决多线程环境下数据不一致的问题,并讨论死锁的概念和解决方法。 一、线程安全问题 在多线程环境下,多个线程同时访问同一个资源时,可能会...
C#多线程系列教程[汇编].pdf
1. Java多线程学习(一)Java多线程入门 2. Java多线程学习(二)synchronized关键字(1) 3. Java多线程学习(二)synchronized关键字(2) 4. Java多线程学习(三)volatile关键字 5. Java多线程学习(四)...
在C#编程中,多线程是一个至关重要的概念,尤其在现代高性能计算和并发处理的场景下。本讲座将深入探讨C#中的多线程技术,包括同步、死锁等关键知识点。 首先,多线程是指在一个应用程序中同时运行多个执行线程。这...
在C#编程中,多线程技术是一种关键的性能优化手段,它允许程序同时执行多个任务,提升程序的效率和响应速度。理解多线程的基本概念对于开发高效的应用至关重要。 首先,我们需要了解进程和线程的概念。进程是操作...
Java多线程是Java编程中不可或缺的一部分,它允许程序同时执行多个任务,从而极大地提高了程序的效率和响应速度。在本文中,我们将深入探讨多线程的概念、优势以及在Java中实现多线程的两种主要方式。 并发历史: ...
RedSpider社区的这个压缩包“多线程精品资源”显然是一个集合了社区成员原创和维护的关于Java多线程的系列文章,旨在帮助开发者深入理解和掌握多线程的核心概念及实践技巧。 1. **线程基础** - **线程的定义**:...