google的go语言除了它很酷的语法外,更吸引开发者的是类似coroutine的goroutine,个人觉得它比lua的coroutine更聪明一些,因为它能在运行时自动组合线程和纤程的能力。另外go语言认为线程间的数据应该通过channel通讯,而不是用地址。这些特点非常方便开发稳定的并发式程序,也提供了清晰的并发编程思路。
go的channel携带一个数据,用于在多个coroutine之间通讯,它容易控制,因为它的规则很简单:没有值时才可以写,否则suspend,有值时才可以读,否则也suspend,并且读写是成对的操作。
其实go的思想也可以拿到delphi里用,可以用线程模仿goroutine,delphi主要用于客户端开发,所以没有go的高效率也可以接受。下面是一个实际效果的演示,希望它可以给多线程中的delphi程序员提供另一个思路。
演示项目代码和所引用的单元在这个贴子里
http://bbs.cnpack.org/viewthread.php?tid=9514&extra=page%3D1
有疑问加站长微信联系(非本文作者)

PASCAL是我喜欢的语言,DELPHI是"聪明的程序员的选择",满满的都是我的爱,但是太坑人了!幸好 GO继承了 PASCAL的 衣钵?
哈哈哈,少年,你知道真多……