V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  itIsUnbelievable  ›  全部回复第 6 页 / 共 6 页
回复总数  120
1  2  3  4  5  6  
@mmrx 今年经济不行呀
@qoo2019 工大对面外国语,工大还是很不错的。
@sumi 我也感觉毕业一年 10K 太少了。
@007yxc 谢谢您的建议
@ChiangDi 我 7 月份找了快一个月,后面都想回家了,但是看了一下我家那边 IT 岗不多,而且工资也不高,温州就在我家边上,就算是温州 IT 工资也感觉不高,所以还是想着现在杭州或上海混个几年先。
@ElegantOfKing 好像是的,我室友或者关系好的同学基本都是 8K 上下。不过由于之前离职后的找工作经历让我体会到这世界对应届生太残酷了,招聘 app 上基本都不招应届生,当时觉得能找到工作就不错了。
@Macolor21 税后是五险一金扣完还有 7K 吗?
@qoo2019 哈哈,科技就在我学校边上。之前上海的面试写 10k 的挺多的
@laojiaqing 我刚毕业在杭州一家公司 7k,965.不过感觉业务方向我不太喜欢,试用期没多久就走了。现在在上海一家创业公司,8k+项目提成。说是 965,不过刚进来就直接叫我负责整个项目,晚上基本 9 点 10 点走。一天基本 12 个小时,这谁顶得住啊。突然感觉这 8k 少的可怜。
@peacelove 平均就没意思了呀
@itIsUnbelievable 刚才手快按出去了,尴尬。。。
while(True):
ret,frame = cap.read()
if ret is True:
pass
这里我有判断,如果是这里的问题那为何最开始不报错,到后面才报错呢?
而且我目前读取的是本地视频文件,还没用到摄像头
@Hconk
while(True):
ret,frame = cap.read()
@minami 这个没问题,因为是对一个视频一直取帧,一般是正常运行了一段时间然后才报这个错,前面图片截取都是正常的。
2019-08-24 10:32:43 +08:00
回复了 itIsUnbelievable 创建的主题 Python Pyqt5 多线程 QThread 要如何创建多个线程呢?
@woshidag 这篇讲的也太好了吧,amazing,谢谢老哥!
2019-08-24 10:27:03 +08:00
回复了 itIsUnbelievable 创建的主题 Python Pyqt5 多线程 QThread 要如何创建多个线程呢?
@allenforrest 谢谢,我昨天看了一篇 QT 的文章就是继承了 QObject,我也就照着做了。而且在子线程中又创建了一个 threadPool,想要创建子线程就再 new 一个新的 runnable 类,测试了一下是可以在子线程下再创建子线程的。就是不太清楚线程中的共享数据问题
2019-08-22 14:02:16 +08:00
回复了 itIsUnbelievable 创建的主题 Python Pyqt5 多线程 QThread 要如何创建多个线程呢?
@allenforrest 我刚才看到这样一句话:
```
需要注意的是,QRunnable 不是一个 QObject,因此也就没有内建的与其它组件交互的机制。为了与其它组件进行交互,你必须自己编写低级线程原语,例如使用 mutex 守护来获取结果等。
```
我想问下 QRunnable 支不支持信号槽机制呢?还有就是它可不可以在子线程中继续创建子线程?这个时候线程的执行顺序该如何保证呢?是要用 python 的 queue 吗?
2019-08-22 13:37:19 +08:00
回复了 itIsUnbelievable 创建的主题 Python Pyqt5 多线程 QThread 要如何创建多个线程呢?
@allenforrest 好的,非常感谢,我先去了解一下,感觉好像很有用。
2019-08-22 13:33:09 +08:00
回复了 itIsUnbelievable 创建的主题 Python Pyqt5 多线程 QThread 要如何创建多个线程呢?
重新发下这部分代码:在 UI 主线程实现点击按钮后创建一个 BaiduYunProcessingThread 类实例。
class BaiduYunObject(QObject):
stop_procession_signal=pyqtSignal()

def __init__(self,parent=None):
super(BaiduYunObject,self).__init__(parent)

def main(self):
for i in range(10):
print(i)
self.stop_procession_signal.emit()

class BaiduYunProcessingThread(QObject):
def __init__(self):
super().__init__()
self.process_thread= QThread()
self.process_thread_1= QThread()
self.procession=BaiduYunObject()
self.procession.moveToThread(self.process_thread_1)
self.procession.moveToThread(self.process_thread)
self.process_thread.started.connect(self.procession.main)
self.process_thread_1.started.connect(self.procession.main)
self.procession.stop_procession_signal.connect(self.stop_process) #线程结束信号槽
self.process_thread.start()
self.process_thread_1.start()

def stop_process(self):
self.process_thread.quit()
2019-08-22 13:25:26 +08:00
回复了 itIsUnbelievable 创建的主题 Python Pyqt5 多线程 QThread 要如何创建多个线程呢?
@chengxiao 继承 Qthread 然后运行 run()方法的那种写法我之前试过,不过 google 了好久发现说 QT 的作者不支持这种写法,所以改成继承了 QObject 这种写法。https://blog.csdn.net/qq_39607437/article/details/79213717 他是这么说的:
```
QtCore.QThread 是一个管理线程的类,当我们使用其构造函数的时候,便新建了一个线程。这里要强调,QThread 是一个线程管理器,不要把业务逻辑放在这个类里面,Qt 的作者已经多次批评继承 QThread 类来实现业务逻辑的做法。
```
我就是按照这篇修改了写法。但是他也没讲这种写法创建很多个线程要怎么弄,所以我就试着创建多个线程实例,并将负责复杂计算业务逻辑的那个类实例放入线程类当中,现在的结果就如上面所说,线程好像不是同时运行的。 我现在很懵逼
2019-08-22 12:53:26 +08:00
回复了 itIsUnbelievable 创建的主题 Python Pyqt5 多线程 QThread 要如何创建多个线程呢?
@chengxiao 而且我把 main()函数改成
for i in range(10):
print(i)
发现两个线程不是并发的,而是一个线程运行结束后再运行另一个。
输出为 01234567890123456789
2019-08-22 12:05:29 +08:00
回复了 itIsUnbelievable 创建的主题 Python Pyqt5 多线程 QThread 要如何创建多个线程呢?
@chengxiao
```
class BaiduYunObject(QObject):
stop_procession_signal=pyqtSignal()

def __init__(self,parent=None):
super(BaiduYunObject,self).__init__(parent)

def main(self):
print(11)
self.stop_procession_signal.emit()



class BaiduYunProcessingThread(QObject):
def __init__(self,detect_url,search_url,add_url,multi_search_url):
super().__init__()
self.process_thread= QThread()
self.process_thread1= QThread()
self.procession=BaiduYunObject()
self.procession.moveToThread(self.process_thread1)
self.procession.moveToThread(self.process_thread)
self.process_thread.started.connect(self.procession.main)
self.process_thread1.started.connect(self.procession.main)
self.procession.stop_procession_signal.connect(self.stop_process) #线程结束信号槽
self.process_thread.start()
self.process_thread1.start()

def stop_process(self):
self.process_thread.quit()

```
我创建了两个线程实例测试了下,是能打印出两个 11.但是 11 前面报了下面这个错误:
QObject::moveToThread: Current thread (0x1d0369badf0) is not the object's thread (0x1d068d35530).
Cannot move to target thread (0x1d068d35f50)

所以我有点疑问,不知道这样创建合不合理。而且还有个问题是如何使用循环创建多个线程实例,比如创建 16 个线程应该如何用 for 循环动态创建变量,毕竟 format()只能用于字符串,如果想要循环创建形如 process_thread_1,process_thread_2 这样的变量该怎么创建呢,我试过 locals(),但没成功,希望能给点建议。
1  2  3  4  5  6  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5314 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 09:17 · PVG 17:17 · LAX 02:17 · JFK 05:17
Developed with CodeLauncher
♥ Do have faith in what you're doing.