pthread多线程是指同时运行多个程序吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pthread多线程是指同时运行多个程序吗?相关的知识,希望对你有一定的参考价值。
pthread多线程是不是同时运行多个程序,各线程相互之间没关系?没影响吗?
参考技术A 不是的,windows每次运行只能运行一个程序或者一个进程就是process。进程里面可以调用多个线程thread,多个线程是按照CPU分时间片进行的,所以看上去跟同时运行一样。
由于多个线程是在同一个进程里面运行的,所以线程之间是可以通信的;而线程之间还可能用到同一个进程里面的相同数据。
线程之间的通信请参看参考资料里面的线程同步。
参考资料:windows核心编程
本回答被提问者采纳 参考技术B 看看这个网址多线程不是同时运行多个程序,而是在一个程序实现功能的时候,在这个程序中开启多个线程来处理
http://baike.baidu.com/view/1053.htm
再看看参考资料的那个网址
参考资料:http://baike.baidu.com/view/65706.htm
多线程初识
线程入门
理解线程与进程的关系是学习线程的基础。进程是指在系统中正在运行的一个应用程序实例。
线程是比进程更小的执行单位。所谓多线程是指一个进程在执行过程中可以产生多个同时存在,同时运行的线程。
多线程机制可以合理利用资源,提高程序运行效率。一个进程至少包含一个线程,程序运行时即自动产生一个线程,如java中主函数Main就是在线程上运行的。除了主线程不再创建新的线程时,当前程序是单线程的。
线程实现
java中实现多线程有两种方式:继承Thread类和实现Runnable接口。
两种方式的比较:
- 继承Thread类可以直接使用Thread类的方法;
- 继承Thread类会受到java单继承的影响;
- 继承Thread类不利于共享资源;
- 实现Runnable接口可以避免java单继承的问题;
- 实现Runnable接口不能直接使用Thread类的方法;
- 实现Runnable接口可以实现资源共享;
重点
以上两种方式都必须重写run()方法,正确启动线程的方法是调用Thread类中的start()方法。
线程生命周期概述
java中的线程对象都有自己的生命周期,线程的生命周期一般具有五种状态,即创建,就绪,运行,阻塞和终止。
创建状态
程序使用构造方法创建线程对象后,新线程对象即进入创建状态。此时线程已经具有相应的内存空间和其它资源,但不可运行。
就绪状态
线程对象创建后调用start()方法启动线程,即进入就绪状态。就绪状态下的线程进入线程队列,等待cpu调用。
运行状态
线程获取cpu资源后即处于运行状态,此时将自动调用线程对象中的run()方法。run()方法定义了该线程的具体操作和实现功能。需要注意的是运行状态下的线程调用yield()方法后,将从运行状态返回就绪状态。
阻塞状态
运行状态的线程调用sleep(),wait()等方法后将进入阻塞状态。线程阻塞条件解除后,线程再次转入就绪状态。
终止状态
当线程执行run()方法完毕后处于终止状态,处于终止状态的线程不具有继续运行的能力。
以上是关于pthread多线程是指同时运行多个程序吗?的主要内容,如果未能解决你的问题,请参考以下文章