一、进程的概念
进程表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并给它分配资源,包括内存空间、磁盘空间、I/O设备等。然后,把该进程放入就绪队列。进程调度程序选中它,为它分配CPU以及其他有关的资源,该进程才真正运行。所以,云南电脑培训http://www.kmbdqn.cn/发现进程是系统中的并发执行的单位。
二、线程的概念
线程:(英语:thread)是 *** 作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
三、引用线程的优势
(1)易于调度。
(2)提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分或相同部分。
(3)开销少。创建线程比创建进程要快,所需开销很少。
(4)利于充分发挥多处理器的功能。通过创建多线程进程(即一个进程可具有两个或更多个线程),每个线程在一个处理器上运行,从而实现应用程序的并发性,使每个处理器都得到充分运行。
四、进程与线程的关系
(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。
(3)处理机分给线程,即真正在处理机上运行的是线程。
(4)线程在执行过程中,要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
简单来说:
1、一个程序至少有一个进程,一个进程至少有一个线程。
2、进程在执行过程中拥有独立的资源,而多个线程共享进程中的资源。
可以的,想必你是个学生,而且正在学习的是 *** 作系统这门课程。我想你们老师只是会教你们 *** 作系统这门课程,会教你们先来先服务,时间片轮流这几种进程调度的方法。如果你上课听懂了,那么你要做的是熟悉这个思想,而不是真的要去实现 *** 作系统级别的进程调度(这对于一个学生来说很有难度,当然天才除外)。所以目的明确,办事的方法不一样,你只要熟悉JAVA进程编程这一块,你就可以动手开始写了,你可以用JAVA带的进程类thread,因为你的目的是为了熟悉进程调度算法,而不是如何去创建一个进程(创建JAVA为你封装好了)。至于如何实现这些调度算法就靠你自己写了。
也许看到这里,你会觉得我一点有用的代码都没贴出来,原因很简单:我没时间写这种代码(多进程编程一直是编程的难点,特别是资源的共享这一块)。第2,成果是要自己争取,别人不会给你最终的答案,最多给你指个方向(出来工作这么久,没人给过现成的,能跑的代码。给个方向就已经非常感激别人了,很多时候,别人理都赖的理你)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)