- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试学习 Python 多处理。
http://docs.python.org/2/library/multiprocessing.html来自“要显示所涉及的各个进程 ID,这是一个扩展示例:”的示例:
from multiprocessing import Process
nhập khẩu chúng
def info(title):
print title
print 'module name:', __name__
if hasattr(os, 'getppid'): # only available on Unix
print 'parent process:', os.getppid()
print 'process id:', os.getpid()
def f(name):
info('function f')
print 'hello', name
nếu __name__ == '__main__':
info('main line')
p = Process(target=f, args=('bob',))
p.start()
p.join()
我到底在看什么?我看到 def f(name): 在 info('main line') 完成后被调用,但这个同步调用无论如何都是默认的。我看到相同的进程信息('main line')是 def f(name)的父 PID:但不确定什么是 'multiprocessing'。
此外,对于 join() “阻塞调用线程,直到其 join() 方法被调用的进程终止”。我不清楚调用线程是什么。在这个例子中,join() 会阻塞什么?
câu trả lời hay nhất
简而言之,multiprocessing
的工作原理:
Process()
产生(fork
或类 Unix 系统上的类似)原始程序的副本(在 Windows 上,缺少真正的 fork
,这很棘手,需要特别注意模块文档中提到的)。mục tiêu=
函数(见下文)。由于这些是独立的进程,它们现在具有独立的全局解释器锁(在 CPython 中),因此只要它们不争用其他较低的 -级 (OS) 资源。这就是“多处理”部分。
当然,在某些时候,您必须在这些假定独立的进程之间来回发送数据,例如,将来自一个(或多个)工作进程的结果发送回“主”进程。 (偶尔会有异常(exception),每个人都是完全独立的,但这种情况很少见……而且还有整个启动序列本身,由 p.start()
启动。)所以每个人都创建了 Process
实例——P
,在上面的例子中——有一个与其父创建者的通信 channel ,反之亦然(它是一个对称连接)。 multiprocessing
模块使用 dưa chua
模块将数据转换为字符串——您可以使用 pickle.dump
将相同的字符串存储在文件中——并发送跨 channel 的数据,“向下”到工作人员发送参数等,“向上”从工作人员发送回结果。
最后,一旦您完成了所有获取结果的工作,worker 就会完成(通过从 mục tiêu=
函数返回)并告诉父级它已完成。为了确保一切都得到关闭和清理,父级应该调用 p.join()
来等待 worker 的“我完成了”消息(实际上是操作系统级别的 ra
在 Unix-ish 系统上)。
这个例子有点傻,因为两条打印消息基本上根本不需要时间,所以“同时”运行它们没有可衡量的 yield 。但是假设不是仅仅打印 Xin chào
,nếu
是计算 π (3.14159...) 的前 100,000 位数字。然后,您可以生成另一个 Process
,trang 2
,它具有不同的目标 g
,计算 e 的前 100,000 位数字 (2.71828...)。这些将独立运行。然后父进程可以调用 p.join()
Và p2.join()
来等待两者完成(或者派生更多的 worker 来做更多的工作并占用更多的 CPU ,甚至先离开自己的工作一段时间)。
关于Python 多处理文档示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18168993/
Tôi có một tệp .sln chứa một số dự án trong đó. Để đơn giản, hãy gọi chúng là... Dự án A Dự án B Dự án C...trong đó A là dự án chính tham chiếu đến B và C. Mục tiêu của tôi là cập nhật tập lệnh xây dựng cho ProjectA
Tôi đã cài đặt Magento và tôi muốn biết cách tạo tài liệu API hoàn chỉnh, ví dụ: tài liệu tại http://docs.magentocommerce.com/ được tạo bằng phpdoc. Nó có được bao gồm trong Magento không?
Tôi thường sử dụng ide gia đình jetbrains. Rất hữu ích khi tạo tài liệu cho một hàm, chỉ cần nhập /** Cách tạo thẻ tùy chỉnh khi tạo tài liệu, chẳng hạn như thẻ @date. Câu trả lời hay nhất JavaScript, Java: st
Tôi đang cố gắng tạo tài liệu bằng thư viện jOpenDocument. Tôi đã thực thi ví dụ này để tạo bảng tính - mã sẽ biên dịch và chạy tốt nhưng khi tôi cố gắng sử dụng Excel Office 2012 hoặc Google Doc
Giống như tiêu đề. Có hình ảnh nào giới thiệu cấu trúc của HTML DOM không? Câu trả lời hay nhất DOM (Mô hình đối tượng tài liệu) bắt đầu bằng nút tài liệu. Nó được gọi là "nút gốc". Quan sát cây sau (nodeType tương ứng trong ngoặc): [HTMLDocument]
Tôi thích ColdFusion Builder. Nhưng tôi không thích tài liệu CF9 chỉ trợ giúp. Có cách nào để thay đổi điều này để có tài liệu ColdFusion 8 không? Câu trả lời hay nhất http://livedocs.adobe.c
Câu hỏi này đã có câu trả lời ở đây: Hậu quả của đoạn javascript này là gì? (4 câu trả lời) Đã đóng 9 năm trước. Tôi thấy một số tập lệnh jQuery được nhúng
Tôi có một tệp XML chứa dữ liệu cần được điền vào tài liệu Word. Tôi cần tìm cách xác định một mẫu có thể được sử dụng làm đường cơ sở để điền dữ liệu từ tệp XML và tạo tài liệu đầu ra. Tôi tin rằng có hai cách để làm điều này. tạo nên
Tôi đang cố gắng tìm tài liệu chi tiết về cách sử dụng AVAudioEngine. Có ai biết tôi có thể tìm thấy nó ở đâu không? Tôi đã tìm thấy cái này, nhưng nó có vẻ rất thô sơ so với nội dung UI được ghi chép đầy đủ. https://developer.a
Tôi ngày càng khó chịu và thất vọng với tài liệu Tensorflow. Tôi đã tìm kiếm trên Google tài liệu về tf.reshape và tôi được dẫn đến một trang chung như ở đây. Tôi muốn xem chi tiết về tf.reshape chứ không phải toàn bộ
Tôi đã làm theo hướng dẫn này: http://moxleystratton.com/clojure/clojure-tutorial-for-the-non-lisp-programmer và sau đó xem qua đoạn mã này: bạn
Cách ghi lại một mảng đối tượng trong swagger. Đây là mã của tôi nhưng tôi không biết cách truy cập dữ liệu trong mảng đối tượng. { "first_name":Sam", "last_name":Smith",
Có thứ gì như JavaDocs cho Javascript không? Khi tôi nhấn ctrl+space trong netbeans IDE để viết javascript, tài liệu javascript của đối tượng được chỉ định sẽ xuất hiện.
đóng cửa. Câu hỏi này không tuân thủ các nguyên tắc của Stack Overflow. Hiện tại nó không chấp nhận câu trả lời. Chúng tôi không cho phép các câu hỏi tìm kiếm đề xuất về sách, công cụ, thư viện phần mềm, v.v. Bạn có thể chỉnh sửa câu hỏi của mình để trả lời bằng sự kiện và trích dẫn. Đóng cửa 5 năm trước.
Tôi cần thứ gì đó giống như di truyền trong JavaScript. Bạn có suy nghĩ gì về điều này không? Tôi cần chức năng trình duyệt chéo. Tôi đã tìm thấy cái này: heredoc = '\\\zzz\\
Tài liệu WSDL chứa một loạt các tài liệu XML đơn giản có thể mô tả định nghĩa về cấu trúc tài liệu WSDL. Tài liệu WSDL sử dụng các thành phần chính sau để mô tả một dịch vụ web.
Có tài liệu về ocropus không? Tôi đang tìm lời giải thích về các hàm sau: make_SegmentPageByRAST(): Segment() RegionExtractor(): setPageLines(
Câu hỏi này đã có câu trả lời ở đây: Tìm hiểu các sự kiện và trình xử lý sự kiện trong C# (13 câu trả lời) Đã đóng 4 năm trước. Tôi đang sử dụng NRECO và ffmpeg để xem
Tôi đang cố truy cập máy chủ công nhân để sử dụng với ứng dụng có tên Spotfire. Đồng nghiệp của tôi đã chuyển điều này cho tôi và đã được vài tuần rồi và tôi gặp vấn đề với đề xuất của anh ấy. Trên thực tế, khi tôi chạy ứng dụng web của mình qua localhost
Tài liệu Elm không đưa ra ví dụ về cách sử dụng, vì vậy thật khó để hiểu thông số kỹ thuật của loại có ý nghĩa gì. Ở một số nơi tôi thấy "a" được sử dụng làm mã định danh tham số, ví dụ: Platform.Cmd : map : (a -> msg) -> Cmd a -> Cmd
Tôi là một lập trình viên xuất sắc, rất giỏi!