小编vel*_*bit的帖子

我什么时候应该在常规线程上使用asyncio,为什么?它是否提供了性能提升?

我对Python中的多线程有一个非常基本的理解,甚至是对它的基本理解asyncio.

我正在编写一个基于Curses的小程序(最终将使用完整的GUI,但这是另一个故事),它处理主线程中的UI和用户IO,然后有另外两个守护程序线程(每个都有自己的队列/工人方法 - 即-得到-东西从 - 一个队列):

  • watcher监视基于时间和条件(例如发布到留言板,收到消息等)事件的线程,然后将所需任务放入...
  • 另一个(worker)守护程序线程的队列然后完成它们.

所有三个线程都在不断地同时运行,这引出了一些问题:

  • worker线程的队列(或者更一般地说,任何线程的队列)为空时,它应该被停止,直到有什么事情要做,或者是否可以继续运行?并发线程在除了查看队列之外没有做任何事情时会占用大量处理能力吗?
  • 这两个线程的队列应该合并吗?由于watcher线程持续运行单个方法,我想worker线程将能够从watcher线程放入的单个队列中拉出任务.
  • 我认为这不重要,因为我不是多处理,但这个设置是否受到Python的GIL(我相信仍然存在于3.4)的影响?
  • 如果该watcher线程连续这样运行?根据我的理解,请纠正我,如果我错了,asyncio应该用于基于事件的多线程,这似乎与我正在尝试做的相关.
  • 主线程基本上只是等待用户按一个键来访问菜单的不同部分.这似乎是一个asyncio完美的情况,但是,我不确定.

谢谢!

python multithreading python-asyncio

27
推荐指数
1
解决办法
5895
查看次数

将三个div的中间居中并将另外两个相对于中间div定位

对不起,如果标题令人困惑.基本上,我正在研究一个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)

css

5
推荐指数
1
解决办法
617
查看次数

标签 统计

css ×1

multithreading ×1

python ×1

python-asyncio ×1