不让带手机还天天加班到深夜,纯牛马

#面试吐槽bot# 面了一家公司,说是为了保密需要,不可以携带手机,日常加班是常态,基本上九点十点左右。
哦对了,公司配备的电脑网络也受限,只能访问一些编程网站。
后来我在网上搜了一下这个公司,发现员工呆的越久,加班时间就越长,听说组长都是到凌晨两点。
这和坐牢有什么区别,好像还不如坐牢……
给的也不是很多,公司业务也比较窄,属于是新人呆了两天就嗷嗷跑,老人也嗷嗷吐血,撑不下去了也嗷嗷跑。所以一直在不停招人。
有人说呆了一年呆出了心理创伤,想起来就反胃
不是,这个世界已经这样了吗,我有点看不懂了,这违反日内瓦公约了吧。
我面试的时候就感觉面试官很丧,我都能想象到入职后同事氛围会是什么样了
会不会有种釜山行的感觉
#你想吐槽公司的哪些规定#
全部评论

相关推荐

# Qt 三种启动多线程的方法Qt 提供了多种实现多线程的方式,以下是三种最常用的方法:## 1. QThread 子类化 (继承 QThread)这是最传统的 Qt 多线程实现方式。```cpp// 1. 继承 QThread 并重写 run() 方法class WorkerThread : public QThread{Q_OBJECTprotected:void run() override {// 在这里执行耗时操作for(int i = 0; i < 100; i++) {qDebug() << "Thread working:" << i;sleep(1);  // 模拟耗时操作}}};// 使用WorkerThread *thread = new WorkerThread();thread->start();  // 启动线程```**特点**:- 直接继承 QThread- 重写 run() 方法- 简单直接,但不够灵活## 2. 移动 QObject 到线程 (推荐方式)这是 Qt 推荐的方式,更符合事件驱动模型。```cpp// 1. 创建一个工作类继承 QObjectclass Worker : public QObject{Q_OBJECTpublic slots:void doWork() {// 耗时操作for(int i = 0; i < 100; i++) {qDebug() << "Worker processing:" << i;QThread::sleep(1);emit progress(i);}emit finished();}signals:void progress(int value);void finished();};// 2. 使用QThread *thread = new QThread();Worker *worker = new Worker();// 将 worker 移动到新线程worker->moveToThread(thread);// 连接信号槽connect(thread, &QThread::started, worker, &Worker::doWork);connect(worker, &Worker::finished, thread, &QThread::quit);connect(worker, &Worker::finished, worker, &Worker::deleteLater);connect(thread, &QThread::finished, thread, &QThread::deleteLater);thread->start();  // 启动线程```**特点**:- 更灵活,可以使用信号槽通信- 符合 Qt 的事件循环模型- 可以轻松实现线程间通信- 是 Qt 推荐的方式## 3. 使用 QtConcurrent (高级 API)QtConcurrent 提供了高级函数式编程接口,适合简单的并行任务。```cpp#include// 1. 定义一个普通函数void heavyComputation(int iterations) {for(int i = 0; i < iterations; i++) {qDebug() << "Computing:" << i;QThread::sleep(1);}}// 2. 使用 QtConcurrent::run 启动线程QFuture future = QtConcurrent::run(heavyComputation, 100);// 可以监控进度QFutureWatcher *watcher = new QFutureWatcher();connect(watcher, &QFutureWatcher::finished, [](){qDebug() << "Computation finished";});watcher->setFuture(future);```**特点**:- 最简单易用的 API- 适合一次性任务- 自动使用线程池- 支持返回值 (通过 QFuture)- 支持 Map/Reduce 等高级操作## 方法对比| 方法                | 适用场景                          | 优点                          | 缺点                          ||---------------------|---------------------------------|-----------------------------|-----------------------------|| 继承 QThread         | 简单线程任务                     | 直接控制线程生命周期          | 不够灵活,不能很好利用事件循环 || moveToThread        | 需要与主线程频繁交互的复杂任务     | 灵活,支持完整信号槽通信       | 代码结构稍复杂                || QtConcurrent        | 数据并行处理,一次性任务          | 简单易用,自动管理线程池       | 控制粒度较粗                  |## 选择建议1. **简单计算任务** → 使用 QtConcurrent2. **需要持续运行的线程** → 使用 moveToThread3. **需要精确控制线程行为** → 继承 QThread (但大多数情况下不推荐)**最佳实践**:在大多数情况下,`moveToThread` 方式是最佳选择,它既保持了灵活性,又能充分利用 Qt 的信号槽机制。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务