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接口。

两种方式的比较:

  1. 继承Thread类可以直接使用Thread类的方法;
  2. 继承Thread类会受到java单继承的影响;
  3. 继承Thread类不利于共享资源;
  4. 实现Runnable接口可以避免java单继承的问题;
  5. 实现Runnable接口不能直接使用Thread类的方法;
  6. 实现Runnable接口可以实现资源共享;

重点

以上两种方式都必须重写run()方法,正确启动线程的方法是调用Thread类中的start()方法。

线程生命周期概述

java中的线程对象都有自己的生命周期,线程的生命周期一般具有五种状态,即创建,就绪,运行,阻塞和终止。

创建状态

程序使用构造方法创建线程对象后,新线程对象即进入创建状态。此时线程已经具有相应的内存空间和其它资源,但不可运行。

就绪状态

线程对象创建后调用start()方法启动线程,即进入就绪状态。就绪状态下的线程进入线程队列,等待cpu调用。

运行状态

线程获取cpu资源后即处于运行状态,此时将自动调用线程对象中的run()方法。run()方法定义了该线程的具体操作和实现功能。需要注意的是运行状态下的线程调用yield()方法后,将从运行状态返回就绪状态。

阻塞状态

运行状态的线程调用sleep(),wait()等方法后将进入阻塞状态。线程阻塞条件解除后,线程再次转入就绪状态。

终止状态

当线程执行run()方法完毕后处于终止状态,处于终止状态的线程不具有继续运行的能力。

以上是关于pthread多线程是指同时运行多个程序吗?的主要内容,如果未能解决你的问题,请参考以下文章

多线程

c++多线程同时运行两个函数该怎样编程啊?

多线程初识

多个请求是多线程吗

多线程基础

JavaEE基础(二十四)/多线程