`
kanpiaoxue
  • 浏览: 1788670 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

线程start() 和 setDaemon() 的解析

 
阅读更多

最近研究python。看了部分内容,开始尝试写Multiple-thread(多线程)的东西。中间遇到了问题:我书写了自己的线程类,在实例化之后,运行start()。程序会立即执行一次,而不像run()方面里面我定义的while True: 里面的代码那样运行。找了好久,才发现:原来我设置了setDaemon(True),然后start()。因为线程是守护线程,主线程结束之后,它会立即结束。当我把setDaemon去掉之后,就没有问题了。

而且给线程命名self.name = name ,要生效必须用start(),而不能用run()。因为run()被调用的时候,self.name指向的是主线程MainThread

分享到:
评论

相关推荐

    Java多线程程序设计详细解析.pdf

    可以通过setDaemon()方法将一个线程标记为守护线程。 6. 线程组和线程池: 线程组允许将线程分类管理。线程池是一种资源池,它允许你管理线程的生命周期,减少在创建和销毁线程上所花的时间和资源。 7. 死锁的避免...

    Java多线程.pdf

    ThreadTest类则是主线程,通过创建SimpleThread对象并调用start方法启动线程,从而演示了线程的创建和执行过程。 上述内容涵盖了Java多线程编程的多个核心知识点,是进行Java多线程开发时应当掌握的基础。

    Java多线程的经典资料.rar

    这份“Java多线程的经典资料.rar”压缩包包含了一份名为“Java线程.pdf”的文档,很可能是关于Java多线程的详细教程或深入解析。 在Java中,多线程主要涉及以下几个关键知识点: 1. **线程创建**:Java提供了多种...

    java多线程测试实例

    以下是对"java多线程测试实例"的详细解析: 1. **线程的创建方式** - 实现`Runnable`接口:创建一个类实现`Runnable`接口,然后将其实例传递给`Thread`类的构造函数创建线程。 - 继承`Thread`类:创建一个类直接...

    Java多线程-Thread类的常用结构及线程优先级

    本文将详细解析Thread类的常用结构以及线程优先级。 一、Thread类的常用结构 1. 线程中的构造器 - `Thread()`:创建一个没有指定名称的新线程对象。在创建Thread类的子类时,如果子类没有提供构造器,会默认调用...

    Java多线程机制(示例)

    - `public final void setDaemon(boolean on)`:设置线程为守护线程或用户线程。 - `public final boolean isDaemon()`:判断线程是否为守护线程。 - `public void checkAccess()`:检查是否有权限修改线程。 - ...

    Python多线程threading和multiprocessing模块实例解析

    在详细解析这两个模块之前,需要先了解进程和线程的基本概念。 进程和线程是操作系统进行资源分配和调度的基本单位。进程是系统进行资源分配和调度的一个独立单位,拥有自己的地址空间,是一个程序关于某数据集合上...

    python线程join方法原理解析

    本文将深入解析`join()`方法,它是控制线程执行顺序和同步的重要手段。 1. **默认线程行为** Python默认情况下,创建的线程会与主线程同步执行。这意味着,无论主线程是否执行完毕,它都会等待所有子线程执行完毕...

    python多线程ping服务器在线情况

    Python中的`threading`模块提供了高级别的线程管理功能,使开发人员能够轻松地创建和管理线程。 2. **Ping命令**:Ping是一种用于测试网络连接状况的基本工具,它通过发送ICMP Echo请求报文并等待接收响应来检查...

    15道面试常问的Java多线程面试题!.zip

    下面将详细解析这15道常见的Java多线程面试题,帮助你深入理解和掌握相关知识点。 1. **线程的创建方式** - 实现Runnable接口:创建一个类实现Runnable接口,重写run()方法,然后通过Thread类的构造函数传入...

    五种多线程操作与IP操作的用法

    5. **守护线程**:通过设置`Thread.setDaemon(true)`,可以创建守护线程。守护线程不会阻止程序的退出,只有当所有非守护线程结束时,程序才会终止。 接下来,我们转向IP操作。IP(Internet Protocol)是网络层的...

    JAVA上课笔记class_11

    根据给定的文件信息,以下是对“JAVA上课笔记class_11”的详细解析与扩展,主要聚焦于操作系统进程与线程的概念以及Java中线程的实现。 ### 操作系统进程 在多任务操作系统中,每个应用程序运行时都会创建一个或多...

    java 文档.md

    ### Java 多线程核心知识点解析 #### 一、多线程基础概念 **1.1 多线程简介** 多线程是现代操作系统的重要特性之一。在一个进程中使用多个线程来执行不同的任务,能够显著提升CPU的使用效率。这是因为线程间的...

    CountThree.zip_threads

    通过调用`setDaemon(true)`方法可以将线程设置为守护线程。 8. **线程池**:Java的`ExecutorService`和`ThreadPoolExecutor`允许我们管理一组线程,可以更高效地控制并发,防止过度创建线程。 9. **线程安全**:当...

    java并发编程实战范例合集new(由浅入深代码范例和详细说明).docx

    `Thread` 类提供了创建和管理线程的方法,如 `start()` 用于启动线程,`run()` 用于执行线程任务。 2. **守护线程(Daemon Thread)**:不同于普通线程,守护线程不阻止程序的退出。Java 的 `Thread.setDaemon(true...

    Python开启线程,在函数中开线程的实例

    ### Python开启线程,在函数中开线程的实例解析 #### 一、引言 在Python编程中,多线程是一种常见的技术手段,用于提高程序的执行效率和响应能力。尤其是在涉及大量数据处理或需要与外部系统交互的任务中,合理地...

    2021-2022计算机二级等级考试试题及答案No.1154.docx

    - **详细解析**:要将某个线程设置为后台线程,需要调用该线程的`setDaemon(true)`方法,并且必须在调用`start()`方法之前完成此操作。这样设置后,当主线程结束时,后台线程也会随之终止。 ### 8. 索引类型 - **...

    python自定义线程池控制线程数量的示例

    ### Python自定义线程池控制线程数量的示例解析 在Python中,多线程是一种常见的并发处理技术,能够显著提高程序的执行效率。本文将深入探讨如何通过自定义线程池来控制线程的数量,并结合实际代码进行详细解析。 ...

Global site tag (gtag.js) - Google Analytics