精华内容
下载资源
问答
  • public class T { public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; t.run();// 如果是这行 则输出结果为:...// 如果是这行 则输出结果
    public class T {
    	public static void main(String args[]) {
    
    		Thread t = new Thread() {
    
    			public void run() {
    
    				pong();
    
    			}
    
    		};
    		t.run();// 如果是这行 则输出结果为:pongping
    		//t.start();// 如果是这行 则输出结果为:pongping pingpong
    		System.out.print("ping");
    	}
    
    	static void pong() {
    		System.out.print("pong");
    	}
    
    }

    展开全文
  • 需求:主线程开启了多个线程去干活,每个线程需要完成...多线程和queue配合使用,实现子线程和主线程相互通信的例子 ''' import threading __author__ = "Kenny.Li" import Queue import time import r...

    声明:最近发现许多博文,内容和本文完全一致,但是并不署名为转载,或者复制到其他平台后又转载到CSDN平台;并且还有人将我的文章做成PDF文档,在下载区卖C币(https://download.csdn.net/download/weixin_38581777/12866250?utm_medium=distribute.pc_relevant.none-task-download-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-download-BlogCommendFromMachineLearnPai2-1.control),再此我严正声明,请尊重我的劳动成果,转载请注明原文出处,对于拿我的文章去换C币的行为严重鄙视!!!

     

    需求:主线程开启了多个线程去干活,每个线程需要完成的时间不同,但是在干完活以后都要通知给主线程

    下面上代码:

    #!/usr/bin/python
    # coding:utf8
    '''
    多线程和queue配合使用,实现子线程和主线程相互通信的例子
    '''
    import threading
    
    __author__ = "Kenny.Li"
    
    import Queue
    import time
    import random
    
    q = Queue.Queue()
    
    
    class MyThread(threading.Thread):
        def __init__(self, q, t, j):
            super(MyThread, self).__init__()
            self.q = q
            self.t = t
            self.j = j
    
        def run(self):
            time.sleep(self.j)
            self.q.put(u"我是第%d个线程,我睡眠了%d秒,当前时间是%s" % (self.t, self.j, time.ctime()))
    
    
    count = 0
    threads = []
    for i in xrange(15):
        j = random.randint(1, 8)
        threads.append(MyThread(q, i, j))
    for mt in threads:
        mt.start()
    print "start time: ", time.ctime()
    while True:
        if not q.empty():
            print q.get()
            count += 1
        if count == 15:
            break
    

    下面对以上代码进行解释:

    1,q 是实例化了的队列对象,具有FIFO性。首先定义一个自己的线程类,重写run方法。注意在构造方法中传入q队列,用于接收每个线程需要返回的消息

    2,第26行,通过q.put()方法,将每个子线程要返回给主线程的消息,存到队列中。

    3,从第31行开始,生成15个子线程,加入到线程组里,每个线程随机睡眠1-8秒(模拟每个线程干活时间的长短不同)

    4,第34-35行,循环开启所有子线程

    5,第36行,打印开始时间

    6,通过一个while循环,当q队列中不为空时,通过q.get()方法,循环读取队列q中的消息,每次计数器加一,当计数器到15时,证明所有子线程的消息都已经拿到了,此时循环停止。

     

    展开全文
  • 多线程和queue配合使用,实现子线程和主线程相互通信的例子 ''' import threading __author__ = "Kenny.Li" import Queue import time import random q = Queue.Queue() class MyThread(threading.Thread): def __...
  • 主线程和当前进程的关系:当前进程由主线程和若干个子线程组成。 若当前进程退出后,子线程也会跟着一起退出;若只是主线程退出,仍要分两种情况分析:实际上主线程退出后子线程的状态依赖于它所在的进程,如果进程...

    分清两个概念
    主线程和当前进程的关系:当前进程由主线程和若干个子线程组成。
    若当前进程退出后,子线程也会跟着一起退出;若只是主线程退出,仍要分两种情况分析:实际上主线程退出后子线程的状态依赖于它所在的进程,如果进程没有退出的话子线程依然正常运转。如果进程退出了,那么它所有的线程都会退出,所以子线程也就退出了。

    查看进程、线程方式

    进程:
    ps -elf | grep "对应的文本内容"
    ps aux    ——查看运行的进程
    
    线程:
    ps -T -p 进程号
    top -H  -p 进程号(sspid对应的为线程号)
    
    Linux下获取当前线程ID号函数:
    pthread_t pthread_self();
    

    1、若主进程、主线程和子线程都未挂时
    进程线程不退出
    进程线程不退出2
    2、若主进程退出,主线程和子线程未进行操作,则:
    主进程退出主进程退出2

    3、若主进程不退出,主线程退出(被杀死),子线程未操作,则

    主线程退出
    主线程退出2
    结论:
    子线程的清理只与当前进程是否被销毁有关,跟主线程销毁无关。

    展开全文
  • 主线程和子线程区别: 主线程一般是,当一个程序启动时伴随着一个线程立即运行,该线程叫做这个程序的主线程,因为它是程序开始时就执行的,如果你需要再创建线程,那么创建的线程就是这个主线程的子线程。每个进程...

    主线程和子线程区别:

    主线程一般是,当一个程序启动时伴随着一个线程立即运行,该线程叫做这个程序的主线程,因为它是程序开始时就执行的,如果你需要再创建线程,那么创建的线程就是这个主线程的子线程。每个进程至少都有一个主线程

    主线程的重要性体现在两方面:1.是产生其他子线程的线程;2.通常它必须最后完成执行比如执行各种关闭动作。

    展开全文
  • Python 个线程按先后顺序执行,并保持各子线程和主线程的通信 摘要 最近有个项目使用pyqt5写的界面,界面展示部分作为项目的主线程,另外通过调用Thread,传入不同的参数又设置了五个子线程,因为第一个子线程的...
  • 守护线程和主线程声明周期关系 一个进程可以有个守护线程 可以通过Thread.setDaemon(true)来设置守护线程 a:虚拟机中可能同时有个线程运行,只有当所有的非守护线程(通常都是用户线程)都结束的时候,虚拟机的进程...
  • 一、并发并行 ... 主线程:执行 主(main)方法的线程 public class Person { private String name; public void run(){ for(int i=1;i<3;i++){ System.out.println(name+"----->"+i); ...
  • * 主线程等待其他线程执行完毕 */ public class WhileTrueThread{ public static void main(String[] args) throws InterruptedException { CountDownLatch countDownLatch=new CountDownLatch(3);
  • http://www.manew.com/thread-98363-1-1.html
  • Tomcat 中的 Acceptor Poller 线程都是守护线程,所以 Tomcat 接收到 shutdown 命令后,不会等待它们处理完当前请求 线程的 5 种与 6 种状态 五种状态 ——从操作系统层面 初始状态,语言层创建了线程对象,...
  • 工作线程和主线程

    千次阅读 2009-07-17 08:19:00
    使用多线程编程的几个常见问题- -1、工作线程还是用户界面线程?对于一个多线程编程高手来说,没有两难的选择,因为不论工作线程还是用户界面线程,其本质是完全相同的。所不同的只是用户界面线程为用户增加了消息...
  • 多线程demo-主线程和子线程交替运行

    千次阅读 2015-02-06 10:44:30
     * 实现效果:主线程运行10次,子线程运行100次,主线程和子线程循环交替运行50次  主要演示synchronizedwait、notify的使用  * 适用场景:只有两个线程的情况,呵呵  */ public class ThreadAltermate { ...
  • 通过上一篇文章我们知道在UI线程中更新UI,在子线程中执行耗时操作。这篇文章记录下那么主线程和线程之间消息处理的多种方式,更的是对比它们的区别。
  • 最近在做系统架构的时候,一个命令需要同时在多个分布节点上执行命令,但主处理又必须等所有节点执行回来后再继续处理,因此研究了一下多线程,现分享如下: 1)第1种方法,微软提供的标准教程: 利用 ...
  • c++主线程和线程

    千次阅读 2020-01-29 10:04:08
    c++主线程和子线程 最近在学习c++多线程,写一篇博客记录下自己的收获。 一.main()函数是主线程函数,在main()函数中创建的线程属于子线程,那主线程和子线程的优先级谁更高呢? 可以看下另外一篇文档:link 在...
  • 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。 要注意条件变量的自动复位问题。 #include #include // 互斥锁,条件...
  • 大家一起探讨Android线程已经有些日子了,谈的最多的就是如何把子线程中的数据发送给主线程进行处理,进行UI界面的更新,为什么要这样,请查阅之前的随笔。本篇我们就来讨论一下关于主线程向子线程如何发送数据,...
  • 接下来,我们讲一讲主线程、线程组、线程优先级、精灵线程/守护线程 在讲之前,我们先简要的说一说,什么是线程,进程,程序 等一下,我们直接po代码截图,直接看具体的案例 多线程即在同一时间,可以做多件...
  • 我们在《C#夯实基础之多线程一:初识多线程》一文中第二部分中...它们的出现并不是多余的,而是为了解决一部分问题出现的,毕竟存在即合理,我们先说主线程、前台线程和后台线程: 一.主线程、前台线程与后台线程 ...
  • 主线程是随着进程的创建而创建的,传入的参数是main里面的参数,而子线程是调用ptchrea_create来创建的,主线程的技术就意味着整个进程结束,其他线程线程都会退出,当然也有办法让主线程退出的时候其他线程继续运行...
  • 用一个形象的比喻来形容进程,主线程,异步线程,多线程和runloop的作用和关系 一个人吃饭的业务场景:(就是相当于一个进程) 角色1:嘴 (第1个黑色箭头,代表主线程) 角色2:左手拿勺子(第2个黑色箭头,代表...
  • 我们在《C#夯实基础之多线程一:初识多线程》一文中第二部分中指出,既然...它们的出现并不是多余的,而是为了解决一部分问题出现的,毕竟存在即合理,我们先说主线程、前台线程和后台线程: 一.主线程、前台线...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,114
精华内容 2,845
关键字:

多线程和主线程