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

📄 tasks.ctk

📁 C-Talk is interpreted scripting language with C-like syntax and dynamic type checking. Variables in
💻 CTK
字号:
nMessages = 10000;
nConsumers = 10;
nProducers = 10;
main = currentThread();
mutex = createMutex();
totalSum = 0;

function consumer()
{
    thread = currentThread();
    sum = 0;
    for (i = 0; i < nMessages; i++) { 
	msg = getMessage(thread);
	sum += msg;
    }
    synchronized(mutex) { 
        totalSum += sum;
    }
    putMessage(main, sum);
}
function producer(consumers, init, step)
{
    for (i = init; i < nMessages; i += step) { 
	for (j = 0; j < nConsumers; j++) { 
	    putMessage(consumers[j], i);
	}
    }
}

consumers = [];
for (i = 0; i < nConsumers; i++) { 
    consumers[i] = par consumer();
}
for (i = 0; i < nProducers; i++) { 
    par producer(consumers, i, nProducers);
}
for (i = 0; i < nConsumers; i++) { 
    msg = getMessage(main);
    assert(msg == nMessages*(nMessages-1)/2);
}
assert(totalSum == nConsumers*nMessages*(nMessages-1)/2);
println("Test finished");












⌨️ 快捷键说明

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