You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多线程启动双Bot失败:仅首个线程运行问题求助

问题分析与解决方案

问题根源

你遇到的核心问题有两个:

  1. vkbot.run_forever()和bot.run(token=token)都是阻塞式同步方法,直接调用时第一个方法会占用当前线程直到程序终止,第二个方法根本没机会执行。
  2. 你之前的线程写法存在错误:args=(vkbot.run_forever(),)是直接执行了run_forever()方法(而非把方法作为线程的执行目标),导致主线程先被该方法阻塞,线程根本无法启动。

解决方案

方案1:修复线程调用逻辑

把方法本身作为线程目标,不要在args里直接执行方法(即不要加括号),正确写法如下:

from vkbottle.bot import Bot, Message
import threading, discord
from discord import commands

vkbot = Bot(token=vk_token)
bot = commands.Bot(command_prefix="+", intents=intents)

@vkbot.on.message()
async def main(message: Message):
    if message.text.lower().startswith("+reg"):
        await message.answer("something")

@bot.event
async def on_ready():
  print(f"Logged in as {bot.user} (ID: {bot.user.id})")

# 正确的线程启动方式
threading.Thread(target=vkbot.run_forever).start()
threading.Thread(target=bot.run, args=(token,)).start()

这样两个线程会分别启动两个Bot的阻塞方法,实现并行运行。

方案2:使用asyncio异步运行(更推荐)

因为VKbottle和Discord.py都是基于asyncio的异步库,用同一个事件循环运行两个Bot的异步任务更高效,无需额外线程/进程:

import asyncio
from vkbottle.bot import Bot, Message
import discord
from discord import commands

vk_token = "你的VK令牌"
discord_token = "你的Discord令牌"
intents = discord.Intents.default()
intents.message_content = True  # 根据需求开启对应的意图权限

vkbot = Bot(token=vk_token)
bot = commands.Bot(command_prefix="+", intents=intents)

@vkbot.on.message()
async def main(message: Message):
    if message.text.lower().startswith("+reg"):
        await message.answer("something")

@bot.event
async def on_ready():
    print(f"Logged in as {bot.user} (ID: {bot.user.id})")

async def run_bots():
    # 创建两个异步任务
    vk_task = asyncio.create_task(vkbot.run_polling())
    discord_task = asyncio.create_task(bot.start(discord_token))
    # 等待两个任务持续运行
    await asyncio.gather(vk_task, discord_task)

if __name__ == "__main__":
    try:
        asyncio.run(run_bots())
    except KeyboardInterrupt:
        print("程序已退出")

注意:Discord.py的bot.run()是同步方法,这里改用异步的bot.start();VKbottle的run_polling()是异步运行方法(若你的版本不支持,可换回线程方案)。

内容的提问来源于stack exchange,提问作者adshdsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 09:25:36