threadtest.cc

来自「Nachos 线程」· CC 代码 · 共 52 行

CC
52
字号
// 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 "system.h"//----------------------------------------------------------------------// 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();    }}//----------------------------------------------------------------------// ThreadTest// 	Set up a ping-pong between two threads, by forking a thread //	to call SimpleThread, and then calling SimpleThread ourselves.//----------------------------------------------------------------------voidThreadTest(){    DEBUG('t', "Entering SimpleTest");    Thread *t = new Thread("forked thread");    t->Fork(SimpleThread, 1);    SimpleThread(0);}

⌨️ 快捷键说明

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