Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 简单jruby线程_Multithreading_Jruby - Fatal编程技术网

Multithreading 简单jruby线程

Multithreading 简单jruby线程,multithreading,jruby,Multithreading,Jruby,我正在寻找如何在jruby中正确启动两个简单线程 在下面的两个线程中,第一个线程中的消息不会被打印。我可以交换两个线程,并且行为(第一个线程不打印)仍然存在:因此这与线程的内容无关(我在任何情况下都会将其删除) 这里是输出:注意第一个线程的消息没有打印出来 => #<Thread:0x72d006a7 run> [2013-04-18T12:56:29+00:00] SCHEDULER: mysql_phases completed irb(main):540:0>

我正在寻找如何在jruby中正确启动两个简单线程

在下面的两个线程中,第一个线程中的消息不会被打印。我可以交换两个线程,并且行为(第一个线程不打印)仍然存在:因此这与线程的内容无关(我在任何情况下都会将其删除)

这里是输出:注意第一个线程的消息没有打印出来

    => #<Thread:0x72d006a7 run>
[2013-04-18T12:56:29+00:00] SCHEDULER: mysql_phases completed
irb(main):540:0>     sprint "awaiting completion of data fetch phases .."
[2013-04-18T12:56:29+00:00] SCHEDULER: awaiting completion of data fetch phases ..
=> nil
irb(main):541:0>     sleep 5
=> 5
irb(main):542:0>     sprint "data fetch phases completed"
[2013-04-18T12:56:34+00:00] SCHEDULER: data fetch phases completed
=>#
[2013-04-18T12:56:29+00:00]计划程序:mysql\u阶段已完成
irb(主):540:0>sprint“等待数据获取阶段的完成…”
[2013-04-18T12:56:29+00:00]计划程序:正在等待完成数据获取阶段。。
=>零
irb(主):541:0>睡眠5
=> 5
irb(主):542:0>sprint“数据获取阶段已完成”
[2013-04-18T12:56:34+00:00]计划程序:数据获取阶段已完成

什么是
sprint
功能

这项工作:

input_before_mysql_phases_t = Thread.new do
  sleep Random.rand(5) # Random sleep
  sprintf "input_before_mysql_phases completed"
end
mysql_phases_t = Thread.new do
  sleep Random.rand(5) #Random sleep
  sprintf "mysql_phases completed"
end


puts "awaiting completion of data fetch phases .."
# Wait for threads to finish
input_before_mysql_phases_t.join
mysql_phases_t.join
puts "data fetch phases completed"
input_before_mysql_phases_t = Thread.new do
  sleep Random.rand(5) # Random sleep
  sprintf "input_before_mysql_phases completed"
end
mysql_phases_t = Thread.new do
  sleep Random.rand(5) #Random sleep
  sprintf "mysql_phases completed"
end


puts "awaiting completion of data fetch phases .."
# Wait for threads to finish
input_before_mysql_phases_t.join
mysql_phases_t.join
puts "data fetch phases completed"