首页

2010年5月29日星期六

Scheme/Lisp 启动一个多线程!

前面写了IO流,现在继续我的学习练习代码,玩具级的程序,多线程的实现。

;;首先定义一个线程吧!

(define thd-one (thread
                         (lambda ()
                         (let loop ((m (thread-receive)))
                            (if (equal? m 'hello)
                                (kill-thread thd-one)
                                (loop (thread-receive))))))

;;呵呵,好了,测试下这个线程是否在运行

(thread-running? thd-one)

;;向线程发送消息

(thread-send thd-one 'hello)

;;在测试下线程是否还在运行

(thread-dend? thd-one)

;;这下应该死掉了吧,因为程序是这样设计的,当给线程发送消息的时候判断,该信息是什么,就比如一个命令,你向该线程发送一个杀死的命令,所以就这样死 掉了。

没有评论:

发表评论