我对Python中的多线程有一个非常基本的理解,甚至是对它的基本理解asyncio
.
我正在编写一个基于Curses的小程序(最终将使用完整的GUI,但这是另一个故事),它处理主线程中的UI和用户IO,然后有另外两个守护程序线程(每个都有自己的队列/工人方法 - 即-得到-东西从 - 一个队列):
watcher
监视基于时间和条件(例如发布到留言板,收到消息等)事件的线程,然后将所需任务放入...worker
)守护程序线程的队列然后完成它们.所有三个线程都在不断地同时运行,这引出了一些问题:
worker
线程的队列(或者更一般地说,任何线程的队列)为空时,它应该被停止,直到有什么事情要做,或者是否可以继续运行?并发线程在除了查看队列之外没有做任何事情时会占用大量处理能力吗?watcher
线程持续运行单个方法,我想worker
线程将能够从watcher
线程放入的单个队列中拉出任务.watcher
线程连续这样运行?根据我的理解,请纠正我,如果我错了,asyncio
应该用于基于事件的多线程,这似乎与我正在尝试做的相关.asyncio
完美的情况,但是,我不确定.谢谢!
对不起,如果标题令人困惑.基本上,我正在研究一个tumblr主题,我需要三个相邻的div包裹在一个固定宽度的容器中.它们的内容都没有固定,所以它们都有可变的宽度.中间div应始终以容器为中心,而左右的div将始终"触摸"中间div,因此,当中间div的宽度发生变化时左右移动(左右s可能是图像,所以text-align并不总是有效.另外,我可能还需要隐藏左,右或左右两个div.
这是一个概念图:
我可以轻松地使用flexbox(JFiddle)获得这个,但flex只有86%的全局支持.
这是我不使用flexboxes时最接近的,但我无法将中间div(带文本)置于标题div的中心,同时保留两侧图像的相对位置:JFiddle
* {
height: 100%;
position: relative;
}
body {
height: 200px;
}
/* just to get rid of scrollbar */
p {
margin: 0;
}
.title {
background: #aaa;
height: 22px;
width: 450px;
/* for example */
margin: 0 auto;
}
.container {
background: #abc;
float: left;
}
.lr {
transform: translate(0, -100%);
}
.left {
background: green;
float: left;
}
.left img {
transform: translate(-100%);
}
.center {
background: red; …
Run Code Online (Sandbox Code Playgroud)