- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Python 示例给出了如何等待排队任务完成的示例,但我不确定如何确定检索顺序。这是代码:
def worker():
while True:
item = q.get()
do_work(item)
q.task_done()
q = Queue()
for i in range(num_worker_threads):
t = Thread(target=worker)
t.daemon = True
t.start()
for item in source():
q.put(item)
q.join() # block until all tasks are done
根据我的解释,这段代码会启动任何范围
的线程,无论多少项目
都位于源
中队列。
因此,如果您启动 20 个线程,并将 30 个项目放入队列中,则似乎将有 20 个工作线程都在调用
while True:
item = q.get()
do_work(item)
那么,第一次将项目放入队列时,20 个线程中的哪一个实际获取刚刚放入队列的项目?
最佳答案
一般来说,不会有保证的顺序,只有保证的互斥。假设您使用的是 queue.Queue
(Python 3) 之类的东西,它使用同步原语来确保一次只有一个线程可以 get()
一项。但是线程获得机会的顺序将受到操作系统调度程序的变化无常的影响 - 负载、优先级等。
关于python - 当在队列中启动多个线程时,哪个线程从堆栈中取出第一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32149513/
我有这样的数据。 (a,b,c,d) (g,b,v,n) (n,h,l,o) (,,,) (,,,) (,,,) (,,,) 我想取出空袋子。 所需的输出 (a,b,c,d) (g,b,v,n) (n
我是编程新手,我有一堆 CSV 文件,每个文件大约有 50 到 60 行。在未指定数量的行之后,第二列中有一个名为“NAME”的字符串。我想获取“NAME”之后第二列中的所有内容并将其打印到文本文件中
有没有办法在 linq 中删除以下代码中的 foreach 并产生相同的输出? DropDownList ddl = new DropDownList(); foreach (Data
注意-可以使用UIViewControllerAnimatedTransitioning https://developer.apple.com/library/ios/documentation/u
因此,我开始使用 Swift 为网站构建应用程序。主要目标是拥有一个可以接收通知(来自网站的 JSON)并可以显示网站所有功能的 iOS 应用程序。所以我可以从应用程序登录并注册到我的数据库,但问题是
我希望直接使用 ALAssetsLibrary 和 ALAsset 以 NSData 对象的形式提取图像。 使用 NSURL,我按以下方式取出图像。 NSURL *referenceURL =newU
我是一名优秀的程序员,十分优秀!