扩展我之前问过的关于 python 中多进程之上的多线程的问题
所以我正在尝试实现一个实现这一目标的示例。首先,我生成了 2 个进程,每个进程将在其中创建 10 个线程,但这里看起来有些不对劲。我没有实现任何类型的锁或信号量,所以我希望输出被打乱(如示例 3 所示)。当我运行此代码示例 1 和 2 时,会以正确的格式打印。例如 2 我什至尝试创建 2 个线程来启动每个进程,以确保它们没有按顺序启动。!为什么会这样?我错过了什么,协调发生在哪里?
import multiprocessing, threading, time
def startThreads(n):
threads = [threading.Thread(target=printer, args=(n, i)) for i in range(10)]
[t.start() for t in threads]
[t.join() for t in threads]
def printer(process_num, thread_num):
time.sleep(1)
print(f"Process number: {process_num} thread number: {thread_num}")
print(f"Process number: P thread number: T")
if __name__ == '__main__':
# Example 1
pros = [multiprocessing.Process(target=startThreads, args=(p_num, )) for p_num in range(5)]
[p.start() for p in …Run Code Online (Sandbox Code Playgroud) 我正在尝试找到开放班次,其中:
IE:
鉴于以下数据/天:
start_time | end_time
-----------|---------
9 AM | 3 PM
5 PM | 10 PM
Run Code Online (Sandbox Code Playgroud)
预期成绩:
start_time | end_time
-----------|---------
6 AM | 9 AM
3 PM | 5 PM
10 PM | 12 AM
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的,但它不起作用(我离正确答案还很远)
SELECT *
FROM WORKERS_SCHEDULE
WHERE START_TIME not BETWEEN
ANY (SELECT START_TIME FROM WORKERS_SCHEDULE)
AND (SELECT START_TIME FROM WORKERS_SCHEDULE)
Run Code Online (Sandbox Code Playgroud)
start_time并且end_time是数据类型TIME。