Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menyelesaikan masalah berbilang benang python yang meminta berbilang antara muka dengan parameter

Bagaimana untuk menyelesaikan masalah berbilang benang python yang meminta berbilang antara muka dengan parameter

WBOY
WBOYke hadapan
2023-04-24 15:10:151668semak imbas

Berbilang utas 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

Cara menggunakan python untuk meminta antara muka

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 F12

Bagaimana untuk menyelesaikan masalah berbilang benang python yang meminta berbilang antara muka dengan parameter Buat permintaan ke antara muka

    Mula-mula sahkan data pengepala permintaan pengepala yang diperlukan
  • Lihat permintaan teks

5. Berikan anda templat dan ambil masa anda Pengalaman

Bagaimana untuk menyelesaikan masalah berbilang benang python yang meminta berbilang antara muka dengan parameter

Ingat untuk lulus pengesahan token dan tukar data kepada json.

    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!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam