会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132462个问题

from threading import Thread
from time import sleep,time
import threading
# Thread:线  
# 线程的实现
# 方法包装

# 创建普通方法
def func1(name):
    print(threading.currentThread())
    print(f"Threading:{name} start")  # f:输出一下哪个线程启动了,print语句一般都是提示信息,
    sleep(3)                           #不加也可以只是不会输出在控制台上(这里指的是name)
    print(f"Threading:{name} end")

if __name__ == "__main__":

    print(threading.currentThread())   # 打印默认的主线程 <_MainThread(MainThread, started 1068)>
    # 开始时间
    start = time()   # 时间测试
    '''
    # 创建线程
    t1 = Thread(target=func1,args=('t1',))  # t1后面加, 必须是元组     # 创建的是子线程
    t2 = Thread(target=func1,args=("t2",))
    # 开始时间
    start = time()
    # 开始线程
    t1.start()
    t2.start()
    # 等待t1线程执行完再往下执行
    t1.join()
    # 等待t2线程执行完再往下执行
    t2.join()
    #func1("t1")
    #func1("t2")
    '''
    thread_list = []
    for i in range(10):
        t = Thread(target=func1,args=(f"t{i+1}",))
        t.start()
        thread_list.append(t)
    for t in thread_list:
        t.join()    # join的使用 不要启动线程后立即join(),容易造成串行运行,导致并发失效
    # 结束时间
    end = time()-start
    print(end)

老师 这里多任务的实现是用了多线程模式方法吗 这里循环10个进程是子线程 主线程只有一个 就是MainThread吗

Python 全系列/第三阶段:Python 网络与并发编程/并发编程 35416楼
Python 全系列/第一阶段:Python入门/面向对象 35417楼

老师出现以下报错:查看了一些解决方法,说可以在open文件时加encoding=gbk,但是askopenfile的参数中没有编码这个参数,请问怎么解决

UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 8: illegal multibyte sequence

#coding=cp936
from tkinter import *
from tkinter.filedialog import *
from tkinter.colorchooser import *


class Application(Frame):
    def __init__(self, master=None):
        super(Application, self).__init__(master)
        self.master = master
        self.filename = None
        self.nt = None
        self.pack()
        self.notebook()

    def notebook(self):
        self.nt = Text(self.master, width=100, height=30, font=("黑体", 20))
        self.nt.pack()
        mainmenu = Menu(self.master)
        menu1 = Menu(mainmenu, tearoff=0)
        menu2 = Menu(mainmenu, tearoff=0)
        menu3 = Menu(mainmenu, tearoff=0)
        menu4 = Menu(mainmenu, tearoff=0)
        self.master["menu"] = mainmenu
        mainmenu.add_cascade(label="文件", menu=menu1)
        mainmenu.add_cascade(label="编辑", menu=menu2)
        mainmenu.add_cascade(label="工具", menu=menu3)
        mainmenu.add_cascade(label="帮助", menu=menu4)

        menu1.add_command(label="新建", accelerator="ctrl+n", command=self.newfile)
        menu1.add_command(label="打开", accelerator="ctrl+o", command=self.openfile)
        menu1.add_command(label="保存", accelerator="ctrl+s", command=self.savefile)
        menu1.add_separator()
        menu1.add_command(label="退出", accelerator="ctrl+q", command=self.quit)
        menu3.add_command(label="颜色选择", command=self.opencolor)

    def newfile(self):
        pass

    def openfile(self):
        with askopenfile(title="打开文件", initialdir="D:/", filetypes=[("文本文档", ".txt")]) as f:
            self.nt.insert(INSERT, f.read())
            self.filename = f.name
            print(self.filename)
            print(f)

    def savefile(self):
        pass

    def quit(self):
        self.master.quit()

    def opencolor(self):
        pass


if __name__ == '__main__':
    root = Tk()
    root.title("测试菜单")
    # root.geometry("200x200+200+200")
    Application(master=root)
    root.mainloop()

image.png

Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 35420楼
JAVA 全系列/第十五阶段:Spring Session会话管理/Spring Session 35422楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 35423楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术 35424楼
Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 35426楼
JAVA 全系列/第十八阶段:亿级高并发电商项目_架构/编码(旧)/电商:基于SpringSession实现登录系统 35427楼
Python 全系列/第二十七阶段:Hadoop 分布式文件系统:HDFS(扩展)/Hadoop 简单介绍及架构设计 35428楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 35429楼
WEB前端全系列/第七阶段:ECMAScript6新特性模块/ES6第一部分 35430楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637