- 博客(5)
- 收藏
- 关注
原创 一个简单的线程池
最近自己,很烦所以超级久没学习了,今天趁着抗战七十周年放三天假,赶紧看下书。 废话不多说。 今天,介绍一个简单的线程池。 首先说明什么是线程池,线程池:是包含若干个线程,来处理多个任务的线程集合。 它的目的是用来处理,大量的相对短暂的任务。这里我们先来解释下两个概念,什么叫大量呢?对于线程来说,需要线程数小于任务数,第二,短暂的任务是指,任务需要相对短暂,如果线程和主进程同周
2015-09-05 02:57:08 510
原创 用条件变量来解决生产者消费者问题
在上一篇文章中,我使用了匿名信号量什么是条件变量? 我们可以设想一个场景:线程A需要某个条件成立才能继续执行,否则一直等待下去,而线程B执行过程中使线程的执行条件成立,并且唤醒A。 举个例子,在生产者消费者模型中,消费者如果看到缓冲区为空时,就等待,而生产者往缓冲区添加完数据后,唤醒消费者。 其中这个场景中,可以POSIX的条件变量来实现。 以下是条件变量所需要的函数pth
2015-08-11 23:09:15 3246 1
原创 生产者消费者问题 伪代码和C语言多线程实现
生产者消费者问题是操作系统中的一个经典的问题。他描述的是一个,多个生产者与多个消费者共享多个缓冲区的事情,具体的定义百度。然后看了操作系统的书籍如何解决书上给的伪代码是这样的item B[k];semaphore empty; empty=k; //可以使用的空缓冲区数semaphore full; full=0; //缓冲区内可以使用的产品数semaphore mut
2015-08-11 22:00:22 12118 1
原创 MD5的自己的理解
这周我boss让我做个MD5的验证算法,这对我一个刚进来的菜鸟来说是要下点功夫,经过不断的百度,谷歌对MD5有个初步的了解什么是MD5算法呢?我理解的是,MD5算法将任意长度的数据(最终都会转化为字符串),转换成一个固定大小(32位或者是16位)的加密数据。而且这些加密后的数据是不可逆的,也就是说,你拿到加密后的数据后,想通过逆运算来获取原来的数据是不可能的。那
2015-05-10 00:08:30 480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人