`
garyli
  • 浏览: 176086 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ruby线程

    博客分类:
  • Ruby
 
阅读更多

使用ruby线程

require 'net/http'

pages = %w{http://www.rubycentral.com http://slashdot.org http://www.google.com}
threads = []

for page_to_fetch in pages
	threads << Thread.new(page_to_fetch) do |url|
		puts "Fetching: #{url} thread:#{Thread.current}"
		res = Net::HTTP.get_response(URI(url))
		puts "Got #{url} #{res.message}"
	end
end

threads.each{|thr| thr.join}

 ruby "D:\testCodes\rubytest\thread.rb"

 

Fetching: http://www.rubycentral.com thread:#<Thread:0x1ab8cc0>

Fetching: http://www.google.com thread:#<Thread:0x1ab8bb8>

Fetching: http://slashdot.org thread:#<Thread:0x1ab8c18>

Got http://www.rubycentral.com OK

Got http://www.google.com Found

Got http://slashdot.org OK

 

 

count = 0
threads = []
10.times do |i|
	threads[i] = Thread.new do 
		sleep(rand(0.1))
		Thread.current["mycount"] = count
		count += 1
	end
end
threads.each{ |t| t.join; print t["mycount"],", "}
puts "count = #{count}"

 ruby "D:\testCodes\rubytest\thread2.rb"

 

3, 0, 4, 8, 6, 9, 1, 5, 2, 7, count = 10

 

分享到:
评论

相关推荐

    Ruby多线程编程初步入门

    这意味着即使在多核处理器上,Ruby线程也不能实现真正的并行执行。然而,通过合理的设计和使用外部库(如多进程、Fiber等),仍然可以在Ruby中实现高性能的并发程序。 #### 四、示例代码分析 以下是一个简单的Ruby...

    ruby线程实现生产者消费者问题示例(队列Queue实现线程同步)

    Ruby线程实现经典的生产者消费者问题,用ruby中的Queue类实现线程同步问题。 代码如下:require “thread” puts “ProAndCon” queue = Queue.new #用队列Queue实现线程同步 producer = Thread.new do 10....

    Working with Ruby Threads

    ### Ruby线程开发技术详解 #### 引言 在计算机科学领域中,多线程编程是一种常见的技术,它允许多个任务同时运行在一个程序中。《Working with Ruby Threads》这本书深入探讨了Ruby语言中的线程机制,对于希望利用...

    Working with Ruby Threads(完整版)

    "Working With Ruby Threads"这本书全面深入地探讨了这个主题,提供了关于Ruby线程的详尽知识。 在Ruby中,线程允许程序同时执行多个任务,从而提高了效率。Ruby的线程模型基于两种主要实现:MRI(Matz's Ruby ...

    初步讲解Ruby编程中的多线程

    Ruby 中我们可以通过 Thread 类来创建多线程,Ruby的线程是一个轻量级的,可以以高效的方式来实现并行的代码。 创建 Ruby 线程 要启动一个新的线程,只需要调用 Thread.new 即可: # 线程 #1 代码部分 Thread.new {...

    Ruby的纤程框架Goliath.zip

    Goliath 是一个开源的非堵塞(异步) 的 Ruby Web 服务器框架,由 PostRank 开发。它是一个轻量级的框架提供高性能、Rack API 和中间件支持,配置简单,完全异步处理。 示例代码: require 'goliath' class ...

    threads_slides:关于 Ruby 线程的 csss 演示

    Ruby 中的线程:你应该知道的 10 件事 CSSS 幻灯片 这个存储库包含我使用所有幻灯片。 要查看幻灯片,您需要下载存储库并在浏览器中打开 index.html 页面。 然后您可以使用箭头键向前和向后移动。

    线程与并发:Ruby并行世界的探索之旅

    ### 线程与并发:Ruby并行世界的探索之旅 #### Ruby 语言概览 Ruby 是一种高级的、面向对象的编程语言,由日本开发者松本行弘(Yukihiro "Matz" Matsumoto)于 1995 年创建。其设计初衷旨在实现简单、自然且强大的...

    多线程和并行程序设计

    多线程与并行程序设计是现代编程中的关键技术点,它们允许程序同时执行多个任务,提高程序的执行效率和响应速度。在Java中,这一技术通过内置的多线程支持得以实现,而线程作为执行任务的基本单位,是程序多任务运行...

    Ruby资源ruby-v3.1.1.zip

    4. **线程局部变量**:Ruby 3.1增加了对线程局部变量的支持,这些变量在每个线程中都有独立的副本,提高了多线程编程的安全性和效率。 5. **改进的错误消息**:错误消息现在更加详细,包含更多信息,帮助开发者更快...

    Ruby-rubyinstall安装RubyJRubyRubiniusMagLevorMRuby

    JRuby的最大优点是与Java库的无缝集成,以及在多线程环境下的高效执行。 3. Rubinius:Rubinius是一个用Ruby语言大部分实现的虚拟机,其目标是提供一个高性能的、符合Ruby语言规范的平台。它使用LLVM作为后端,支持...

    Ruby 多线程的潜力和弱点分析

    Web 应用大多是 IO 密集型的,利用 Ruby 多进程+多线程模型将能大幅提升系统吞吐量。其原因在于:当Ruby 某个线程处于 IO Block 状态时,其它的线程还可以继续执行。但由于存在 Ruby GIL (Global Interpreter Lock)...

    Ruby-ConcurrentRuby现代并发工具

    `Concurrent Ruby`的线程池实现了动态调整线程数量、任务调度和线程回收等功能,从而提高系统的资源利用率。使用线程池可以避免频繁地创建和销毁线程带来的开销,同时保证系统在高负载下的稳定性。 四、Supervisors...

    Ruby-Puma一个Ruby的并发Web服务器

    Ruby-Puma是一个高性能、轻量级且并发的Web服务器,专为Ruby编程语言设计。它在Ruby社区中广泛用于构建Web应用程序,特别是与Rails框架一起使用。Puma的设计目标是提供稳定、快速和易于管理的服务,同时保持低内存...

    Ruby-LightIO是一个ruby网络库它结合了rubyfiber和快速IOeventloop

    Ruby Fiber是轻量级的线程,允许在单个线程内实现协程。它们提供了类似于多线程的并发效果,但不涉及实际的上下文切换,因此更加高效。Fiber可以用于控制程序执行流程,使得在一个单一的线程中能够执行多个任务,...

    Ruby-CassandraDriverApacheCassandra的一个纯Ruby驱动器

    这在处理大量并发请求时特别有用,避免了线程或进程阻塞导致的资源浪费。 “可配置的负载平衡”意味着驱动程序允许开发者根据需求调整数据请求的分发方式,以优化整个系统的性能。这可能包括将请求分散到不同的节点...

    ruby语言帮助文档(简体中文)

    10. **并发编程**:Ruby支持线程和进程,但默认的MRI(Matz's Ruby Interpreter)在单线程环境下执行,使用GVL(全局解释器锁)限制了并行执行。JRuby和Rubinius等其他实现则支持真正的多线程。 这个中文帮助文档会...

Global site tag (gtag.js) - Google Analytics