一、引言 之前我们学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗一定的时间来创建进程、创建线程、以及管理他们之间的切换。 随着我们对于效率 ...
分类:
其他好文 时间:
2019-09-21 23:49:29
阅读次数:
203
上一篇文章介绍了condition的使用方法 https://www.cnblogs.com/liumy/p/11563772.html 这一篇文章介绍如何用condition来实现一个简单的阻塞队列 消费者 生产者模式。 消费者 生产者模式就是 生产者生产某些对象,消费者来消费这些对象。其中用对象 ...
分类:
编程语言 时间:
2019-09-21 21:16:26
阅读次数:
82
简单命令 1.who命令 who命令将列出所有正在使用系统的用户、所用终端名和注册到系统的时间。 2.echo命令 echi命令将列出命令行中的参数显示到标准上。 3.date命令 date命令在屏幕上显示上后设置系统的日期和时间。 4.cal命令 cal命令显示公元1-9999年中任意一年后任意一 ...
分类:
系统相关 时间:
2019-09-21 19:11:20
阅读次数:
169
MyThread.class Run.class mainThread: falsemyThread: truemain 开始睡觉java.lang.InterruptedException: sleep interrupted at java.lang.Thread.sleep(Native Me ...
分类:
编程语言 时间:
2019-09-21 17:00:04
阅读次数:
96
首先在了解解析式之前,我们先来看一个列子:一个列表,元素是0-9,列表中的每个值自增1,该如何实现: 方法一:遍历列表,对其元素进行加1操作后放到一个新的列表中 方法二:通过map函数来实现 方法三:通过列表解析式,一行搞定 方法三就是列表解析式的写法,返回一个新的列表。 那么什么是生成器呢?通过列 ...
分类:
其他好文 时间:
2019-09-21 14:41:40
阅读次数:
85
编程的一个原则:开放封闭原则,对源代码的修改封闭,在源代码不变的情况下,对扩展新功能开放 import timedef foo(): print('foo....') time.sleep(2)def show_time(func): start = time.time () func() end ...
分类:
编程语言 时间:
2019-09-21 12:35:30
阅读次数:
89
原文:c# Task waitAll,WhenAll wait 阻塞的 when是异步的非阻塞的。 Task[] tlist = new Task[] { Task.Run(() => { Thread.Sleep(3000); }), Task.Factory.StartNew(() => { T... ...
#创建一个文件夹用来保存文件#每x分钟截屏一次存放到指定文件夹import osimport pyautogui as paimport timedef make_dir(dirs): if not os.path.exists(dirs): os.makedirs(dirs)#检测并且创建目录de ...
分类:
编程语言 时间:
2019-09-18 19:25:57
阅读次数:
115
一、时间等待1、sleep进程休眠,傻傻的等,会浪费时间2、implicityly_wait(30)等待页面全部加载完成 页面加载完成的标志是左上角转圈结束 如果页面元素加载完成了,某些js加载失败,页面左上角一直转圈,会耗费时间 全局的,只写一次就行了-缺点:页面有跳转的时候,它不知道去等跳转后的 ...
分类:
其他好文 时间:
2019-09-18 17:46:32
阅读次数:
131
递归锁 互斥锁 递归锁 死锁 死锁就是在使用互斥锁的时候,同时开启了两把锁,就会导致死锁问题 因为同一时间只能由一个线程打开锁,然后关闭锁之后才可以去有另外一个线程去执行锁 就是一个线程还没有释放一个锁,但是另一个线程已经拿到了其他锁的钥匙,导致第一个执行的线程没办法拿到下一个锁的钥匙,也没办法执行 ...
分类:
其他好文 时间:
2019-09-18 17:40:01
阅读次数:
96