第3题
A、互斥量解锁成功
B、当前没有任何线程申请了读写锁
C、当前只有线程申请了读锁
D、当前已有线程申请了写锁
第6题
4.1 (实验目的:熟悉Window进程创建过程)在Windows环境下,利用高级语言编程环境(限定为VS环境或VC环境)调用相关的系统调用(CreateProccess,即系统API)实现一个包括“进程创建,文件读写”的应用程序。有一个文本文件CommandList.txt,第一行是说明性文字:本文件最后一次打开和运行日期是20190407。第二行开始每行是一个可执行程序的名称(含路径)。编写一个应用程序能打开该文件,并顺序执行其中的每个程序,并更新文件第一行中的日期。 [下面有一个文本文件CommandList.txt的截图] --------------------------------------------------------------------- | 本文件最后一次打开和运行日期是20190407 | | c:\Windows\system32\notepad.exe | | c:\Windows\system32\calc.exe | | c:\Windows\system32\mspaint.exe | | | |-------------------------------------------------------------------| 4.2 (实验目的:熟悉Linux fork创建进程的方法)在Ubuntu或Fedora环境使用fork函数创建一对父子进程,分别输出各自的进程号和提示信息串。 4.3 (实验目的:熟悉Linux 创建线程的方法)在Ubuntu或Fedora环境使用pthread_create函数创建2个线程A和B。线程A在屏幕上用while循环顺序递增地输出1-1000的自然数;线程B在屏幕上用while循环顺序递减地输出1000-1之间的自然数。为避免输出太快,每隔0.5秒输出一个数。 4.4(实验目的:熟悉Window线程创建过程)Windows环境下,利用高级语言编程环境(限定为VS环境或VC环境)调用CreateThread函数实现4.3的功能。 4.5(实验目的:熟悉Window线程创建过程)在windows环境下,利用高级语言编程环境(限定为VS环境或VC环境)调用CreateThread函数实现“并发地画圆和画方”。圆的中心,半径,颜色,正方形的中心,边长,颜色等参数自己确定,合适就行。圆和正方形的边界上建议取720个点。为直观展示绘制的过程,每个点绘制后睡眠0.2秒~0.5秒。 4.6(实验目的:熟悉Window线程创建过程)在windows环境下,利用高级语言编程环境(限定为VS环境或VC环境)调用CreateThread函数实现“文件拷贝小工具”。功能如下:1)具有一个编辑框,让用户任意指定源目录或文件,2)具有一个编辑框,让用户任意指定目的目录或文件;3)具有“开始拷贝”按钮;4)具有“停止拷贝”按钮5)具有显示拷贝进度的Label,当为目录拷贝时以文件数来统计进度,当为文件拷贝时以字节数来统计进度。 4.7(实验目的:理解“生产者-消费者”同步模型,熟悉Window同步控制机制和编程应用)在windows环境下,利用高级语言编程环境(限定为VS环境或VC环境)调用CreateThread函数和相关的同步函数,模拟实现“生产者-消费者”问题。 4.8(实验目的:熟悉Linux信号机制编程应用)在Ubuntu或Fedora环境创建父子2个进程A,B。进程A不断获取用户从键盘输入的字符串或整数,通过信号机制传给进程B。如果输入的是字符串,进程B将其打印出来;如果输入的是整数,进程B将其累加起来,并输出该数和累加的和。当累加和大于100时结束子进程,子进程输出“My work done!”后结束,然后父进程也结束。 4.9(实验目的:熟悉Windows管道通信机制编程应用)在windows环境下实现4.7.1节“算命大师程序的改进版”程序。
第7题
B、若多个线程对共享数据只执行“读”操作,则不存在共享数据一致性问题
C、若多个线程对共享数据执行“写”操作,则存在共享数据一致性问题
D、各线程可以自由访问共享数据
第8题
阅读线程之间的通信程序,理解并能仿写运行即可。 生产者与消费者。 class Computer{ // 具体生产的物品实体类的实现 private String name; public static int sum=0; private boolean flag=true; public Computer(String name){ this.name=name; } public synchronized void set(){ //生产电脑 if(!flag){ try{ super.wait(); }catch(Exception e){ e.printStackTrace(); } } sum=sum+1; System.out.println("第"+sum+"台"+name+"电脑被生产"); flag=false; super.notify(); } public synchronized void get(){ //搬走电脑 if(flag){ try{ super.wait(); }catch(Exception e){ e.printStackTrace(); } } System.out.println("第"+sum+"台"+name+"电脑被搬走"); flag=true; super.notify(); } } class Producter implements Runnable{ //生产者 private Computer c=null; public Producter(Computer c){ this.c=c; } public void run(){ for(int i=0;i<1000;i++){ this.c.set(); } worker implements runnable{ 消费者 private computer c="null;" public worker(computer c){ this.c="c;" void run(){ for(int i="0;i<1000;i++){" this.c.get(); test{ 测试类 static main(string args[]){ computer("联想"); producter p="new" producter(c); w="new" worker(c); new thread(p).start(); thread(w).start();>
第9题
A、队列同数据缓冲区类似,是一个先入先出(FIFO)的数据结构
B、若出队速度大于入队速度,队列中不会有多余数据
C、队列具有调节读写速度的能力
D、当队列中数据达到设定值(如1024个);“进入队列”的线程被动等待,直到队列中有别的线程取出数据,使队列出现空闲位置,才会让新数据入队。但出现空闲之前的入队数据会丢失。
第10题
A、当队列中数据达到设定值(如1024个);“进入队列”的线程被动等待,直到队列中有别的线程取出数据,使队列出现空闲位置,才会让新数据入队。但出现空闲之前的入队数据会丢失。
B、队列同数据缓冲区类似,是一个先入先出(FIFO)的数据结构
C、若出队速度大于入队速度,队列中不会有多余数据
D、队列具有调节读写速度的能力
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!