⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threadtest.cc

📁 这是一个关于操作系统进程调度的实验
💻 CC
字号:
// threadtest.cc //	Simple test case for the threads assignment.////	Create two threads, and have them context switch//	back and forth between themselves by calling Thread::Yield, //	to illustratethe inner workings of the thread system.//// Copyright (c) 1992-1993 The Regents of the University of California.// All rights reserved.  See copyright.h for copyright notice and limitation // of liability and disclaimer of warranty provisions.#include "copyright.h"#include <cstdio>#include <cstdlib>#include <ctime>#include "system.h"#include "dllist.h"using namespace std;// testnum is set in main.ccint testnum = 1;//----------------------------------------------------------------------// SimpleThread// 	Loop 5 times, yielding the CPU to another ready thread //	each iteration.////	"which" is simply a number identifying the thread, for debugging//	purposes.//----------------------------------------------------------------------/*voidSimpleThread(int which){    int num;        for (num = 0; num < 5; num++) {	printf("*** thread %d looped %d times\n", which, num);        currentThread->Yield();    }}*/void                                                                                            //<--SimpleThread( int which ){	int key;	Begin( which );	if( Flag == 6 )	{		printf("SimpleThread interrupt!\n");		currentThread->Yield();	}	End( which);}//----------------------------------------------------------------------// ThreadTest1// 	Set up a ping-pong between two threads, by forking a thread //	to call SimpleThread, and then calling SimpleThread ourselves.//----------------------------------------------------------------------voidThreadTest1(){	int i;		DEBUG('t', "Entering ThreadTest1");	for( i = 0; i < Thread_num; i++ )	{		Thread *t = new Thread("forked thread");		t->Fork(SimpleThread, i);	}//	SimpleThread(0);}/*voidThreadTest1(){    DEBUG('t', "Entering ThreadTest1");    Thread *t = new Thread("forked thread");    t->Fork(SimpleThread, 1);    SimpleThread(0);}*///----------------------------------------------------------------------// ThreadTest// 	Invoke a test routine.//----------------------------------------------------------------------voidThreadTest(){    switch (testnum) {    case 1:	ThreadTest1();	break;    default:	printf("No test specified.\n");	break;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -