1、线程的创建 C11创建线程非常简单,只需要提供线程函数就行,标准库提供线程库,并可以指定线程函数的参数。 2、阻塞&非阻塞 在线程执行的时候,可以选择线程是否阻塞执行,如果阻塞,则主线程等线程函数执行完,再往下执行,否则启动线程之后,主线程直接往下执行。 join函数会阻塞线程,直到线程函数执行 ...
分类:
编程语言 时间:
2017-12-03 19:52:52
阅读次数:
187
测试如下 结果分析,这时cpu切换到了主线程执行了interrupt函数,这时,再进入for循环,前面已经执行到了1234,这时打完标记的子线程已经中断了,这时break跳出当前的for循环,但是下面的for循环外的语句还是 会执行的,因为线程已经打了标记,但是线程并没有被立刻中断 那如何使线程被立 ...
分类:
编程语言 时间:
2017-12-03 16:25:59
阅读次数:
158
在sleep状态下,停止线程。会进入catch语句,并且清除停止状态值,使其变成false 前一个实验是先sleep后,在执行interrupt() 下面实验先停止线程,在进入sleep 结果分析: 这边由于主线程先执行完了代码,给子线程打了停止标记,当子线程执行时线程停止了,再执行sleep方法, ...
分类:
其他好文 时间:
2017-12-03 16:25:49
阅读次数:
157
1.第1种方式:threading模块 1)单线程执行 2)多线程执行 主线程会等待所有的子线程结束后才结束 主线程会等待所有的子线程结束后才结束 2.线程和进程的区别联系 进程是资源分配的单位,资源,内存,屏幕,等 线程是cpu调度的单位 1个进程内有1个主线程,主线程可以创建多个子线程 主线程任 ...
分类:
编程语言 时间:
2017-12-03 15:36:11
阅读次数:
209
调用interrupt()来停止线程,但是interrupt()方法的使用效果并不像是for+break语句那样,马上就停止循环,调用此方法仅仅是在当前线程中打了一个停止的标记,并不是真正的停止线程。 测试如下 结果分析: 主函数开始执行的是主线程,当执行语句sleep时,切换到了子线程,这时执行i ...
分类:
编程语言 时间:
2017-12-03 15:31:00
阅读次数:
214
方法isAlive()的功能是判断当前线程是否处于活动状态 活动状态是线程已经启动且尚未终止,线程处于正在运行或准备开始运行的状态,就认为线程是存活的。 测试如下 结果分析:上面刚开始还没有执行start()方法,所以begin为false,当开启线程之后,先打印end,说明此时cpu切换到了主线程 ...
分类:
其他好文 时间:
2017-12-03 14:48:24
阅读次数:
188
方法sleep()的作用是指在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)这个正在执行的线程是指this.currentThread()返回的线程。 测试如下 结果分析: 直接调用run方法,说明此时并没有开启子线程,run函数里的方法都是主线程调用的,所以当线程睡眠也是主线程睡眠,代码顺序依 ...
分类:
其他好文 时间:
2017-12-03 14:38:51
阅读次数:
247
1. Timer简介 Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。 通过创建Timer对象,然后调用Timer的schedule方法,将TimerTask实例作为参数,从而实现定时调度TimerTask(其中 ...
分类:
其他好文 时间:
2017-12-02 20:17:46
阅读次数:
190
线程和进程无论是使用方法还是概念方面,几乎一样,主要的区分在于概念方面的不同 线程可以认为属于进程的一部分,进程分为主进程和子进程,线程也分为主线程和子线程 threading(开启线程的模块)模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相 ...
分类:
编程语言 时间:
2017-12-02 17:49:16
阅读次数:
228
线程中断: 首先线程在未正常结束之前,被强制终止是很危险的事,会造成意想不到的后果。 但有时想让一个线程结束,或者结束某种等待的状态,该咋办? 使用等待/通知机制或者给那个线程一个中断信号,让它自己决定该怎么办? 中断使用的场景: 1.线程为了等待一些特定的资源的到来,调用了Thread.sleep ...
分类:
编程语言 时间:
2017-12-01 18:34:50
阅读次数:
157