一、实验名称:多线程的操作
二、实验步骤:
Lab04-1:
Step1: 建立一个线程,并执行线程任务(runner函数)
Step2: runner任务输出小于输入参数的所有素数
结果:
Lab04-2
Step1: 分别创建兔子和乌龟两个线程
Step2: 随机生成兔子和乌龟跑的距离,假设兔子速度比乌龟稍大(upper即所输入的所要比赛的距离数)
Step3: 在跑的距离达到所要求的距离时输出赢得语句(其中兔子会稍作停顿休息)
全部结果:
三、总结:
1. argv为main函数的参数在运行时需先传入才可以正确执行程序;
2. 线程是在create之后就执行;
3. 一个进程中的多线程是轮流执行的,是CPU在线程中切换,其实并不是真正的同时进行;
总结:
要熟悉了解多线程运行过程;
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源;
当多个任务可以并行执行时,可以为每个任务启动一个线程;
多线程实际上是多个线程之间轮流执行的,就是将一个时间段分成若干个时间片,每个线程只运行一个时间片,由于时间片极短,而且电脑运行极快,线程之间切换也极快,几乎可以看做是并行运行的,也就是说可以看成是同时运行的.但实际却不是的同时运行的(CPU把工作时间分成很多很短的时间片,一个一个时间片的来执行任务,假如多个线程在这些时间片里面轮流执行);