Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menyelesaikan masalah berbilang benang python yang meminta berbilang antara muka dengan parameter
Untuk kandungan proses/benang/Ctrip/tak segerak, saya mempunyai masa untuk menyediakan dan menulisnya yang telah saya gunakan untuk menggelungkan dengan begitu perlahan sehingga menjadi sangat perlahan Saya ragu-ragu bahawa ia perlu digunakan dalam kehidupan, jadi saya akan meringkaskannya secara berasingan
Mula-mula kita lihat kod dan lihat antara muka permintaan berbilang benang
imoprt threading # 首先运用到threading模块 class BrushGifts: # 以下是两个相同的接口 send_gift_room_one()是送礼的接口 # 也就是说我想完成的状态是A送B B送A 两个用户同时想对方赠送礼物 def giftt(self, uid, recvUid, giftId): """ 送礼接口 :param uid: 送礼用户 :param recvUid: 收礼用户 :param giftId: 礼物道具id :return: """ VoiceRoom().send_gift_room_one(uid, recvUid, giftId) def giftt_a(self, uid, recvUid, giftId): # 与上面的接口相同 不多做叙述 # 没什么区别 就是写着好理解俩接口的概念 VoiceRoom().send_gift_room_one(recvUid, uid, giftId) if __name__ == '__main__': # 因为我的账号是储存在yaml文件内 所以需要先倒出需要用户的uid列表 # 送礼人与收礼人分别倒出 uid_list = YamlHandler(YamlThePath().voice_room_cpNew).get_uid_list(10) rUid_list = YamlHandler(YamlThePath().number_old).get_scope_uid(1500, 10) # 这里暂时先展示最简单的AB同时互送~ for (i, j) in zip(uid_list, rUid_list): # target内需要传入方法名 不要带()因为带括号就等于去调用了该方法 会直接开始执行 # args内传入输入带入的参数 可以按顺序来 也可以整理成元组或字典接收 t1 = threading.Thread(target=BrushGifts().giftt, args=(i, j, 51620)) # 两个threading.Thread就是我请求并发两个接口 t2 = threading.Thread(target=BrushGifts().giftt, args=(j, i, 51620)) # t1.start()为执行 t1.start() t2.start()
Utas utama:
Utama Konsep utas adalah untuk melaksanakan fail py dari awal apabila saya selesai melaksanakan baris terakhir kod t2.start(. ), utas utama akan memasuki keadaan menunggu Thread utama tidak akan tamat sehingga utas anak tamat
Sub-thread:
Konsep sub-thread. ialah semasa pelaksanaan utas utama, saya melaksanakannya di sini Sudah tentu, ia dipanggil melalui kaedah t1.start()
t1 = threading.Thread(target=BrushGifts().giftt, args=(i, j, 51620))
Pada masa ini, sistem akan mencipta sub-benang lain. untuk melaksanakan dan memanggil kaedah BrushGifts().giftt
Utas utama akan melaksanakan t1.start() dan t2.start() semasa proses, tetapi yang lain Ia tidak akan menunggu pelaksanaannya tamat, dan utas utama akan diteruskan, jadi t1.start() dan t2.start() diminta pada masa yang sama Apabila kedua-dua sub-proses t1.start() dan t2.start() berakhir, thread utama Thread akan tamat. ~
Oleh kerana utas utama melaksanakan t1.start() dan t2.start() baris demi baris dan Python tidak dapat mencapai konkurensi dalam erti kata yang tepat, jadi jika keperluan kelajuan data sangat tinggi Kadang-kadang kaedah ini tidak berkenaan
Fungsi: digunakan untuk memasukkan data berulang kali
1 Mula-mula muat turun python dan kemudian masukkan python dalam cmd untuk menentukan sama ada global pemasangan berjaya >
Tekan F12Buat permintaan ke antara muka
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah berbilang benang python yang meminta berbilang antara muka dengan parameter. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!