Skip to content

Latest commit

 

History

History
28 lines (23 loc) · 749 Bytes

thread.md

File metadata and controls

28 lines (23 loc) · 749 Bytes

线程

创建一个独立的线程worker,去执行一项任务,在仓颉里面非常简单,spawn{工作任务代码}这样就可以了,示例如下:

    spawn{
         currentThreadRuns(e)
     }

复杂一点的例子

    public init(maxWaitingJob: Int64, fullJobQueueStrategy!: WorkerStrategy = Block,
                abilities!: Array<(Event, (Event)->Event)> = []){
        queue = JobQueue(maxWaitingJob, strategy: fullJobQueueStrategy, abilities: this.abilities)
        register(abilities)
        spawn{
            while(!retired.load()){
                var e = queue.dequeue()
                while(!e.end){
                    e = this.abilities[e](e)
                }
            }
        }
    }