📄 tprimes.c
字号:
#include <u.h>#include <libc.h>#include <thread.h>int quiet;int goal;int buffer;int (*fn)(void(*)(void*), void*, uint) = threadcreate;voidprimethread(void *arg){ Channel *c, *nc; int p, i; c = arg; p = recvul(c); if(p > goal) threadexitsall(nil); if(!quiet) print("%d\n", p); nc = chancreate(sizeof(ulong), buffer); (*fn)(primethread, nc, 1024); for(;;){ i = recvul(c); if(i%p) sendul(nc, i); }}voidthreadmain(int argc, char **argv){ int i; Channel *c; ARGBEGIN{ case 'q': quiet = 1; break; case 'b': buffer = atoi(ARGF()); break; case 'p': fn=proccreate; break; }ARGEND if(argc>0) goal = atoi(argv[0]); else goal = 100; c = chancreate(sizeof(ulong), buffer); threadcreate(primethread, c, 1024); for(i=2;; i++) sendul(c, i);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -