树莓派只有一路硬件PWM输出(GPIO1),可是要实现RGB LED的控制,需要3路PWM。其实,wiringPi库为我们提供了用软件多线程实现的PWM输出,我们可以利用这个库提供的函数很方便的将任意GPIO配置为PWM输出。在本例中,我将GPIO0,GPIO1,GPIO2配置成了soft PWM输出。...
分类:
其他好文 时间:
2014-08-09 18:51:48
阅读次数:
443
VLC采用多线程并行解码架构,线程之间通过单独的一个线程控制所有线程的状态,解码器采用filter模式.组织方式为模块架构模块简述:libvlc 是VLC的核心部分。它是一个提供接口的库,比如给VLC提供功能接口:流的接入,音频视频的输出,插件管理,线程系统。interface 包含...
分类:
其他好文 时间:
2014-08-09 18:31:18
阅读次数:
216
死锁:是两个或者两个以上的线程被无限的阻塞,线程之间互相等待所需资源。线程死锁产生的条件:当两个线程相互调用Join()方法。当两个线程使用嵌套的同步代码块的时候,一个线程占用了另一个线程的锁,互相等待阻塞,就有可能产生死锁。下面看代码:代码1:死锁的案例package com.lp.ecjtu.T...
分类:
编程语言 时间:
2014-08-09 13:16:08
阅读次数:
267
一、理解多线程多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储..
分类:
编程语言 时间:
2014-08-09 02:49:58
阅读次数:
332
1.验证同步函数使用的锁----普通方法使用的锁思路:创建两个线程,同时操作同一个资源,还是用卖票的例子来验证。创建好两个线程t1,t2,t1线程走同步代码块操作tickets,t2,线程走同步函数封装的代码操作tickets,同步代码块中的锁我们可以指定。假设我们事先不知道同步函数用的是什么锁;如...
分类:
编程语言 时间:
2014-08-08 23:50:26
阅读次数:
396
I/O复用模型
I/O复用原理:让应用程序可以同时对多个I/O端口进行监控以判断其上的操作是否可以进行,达到时间复用的目的。在书上看到一个例子来解释I/O的原理,我觉得很形象,如果用监控来自10根不同地方的水管(I/O端口)是否有水流到达(即是否可读),那么需要10个人(即10个线程或10处代码)来做这件事。如果利用某种技术(比如摄像头)把这10根水管的状态情况统一传达到某一点,那么就只需要1个...
分类:
编程语言 时间:
2014-08-08 18:14:16
阅读次数:
253
前言:
在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。
认识BlockingQueue
阻塞队列,顾名思义,首先它是一个队列,而一个...
分类:
其他好文 时间:
2014-08-08 18:13:36
阅读次数:
308
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Runtime.CompilerServices;namespa...
分类:
编程语言 时间:
2014-08-08 17:52:06
阅读次数:
254
考核题目中涉及到多线程编程,于是复习了一下系统编程里面的各种概念。首先,程序是代码,没有活动。通过编译连接之后被加载到内存里运行时,内存活动的就是进程,这里的进程不仅仅是代码段,还包括涉及的数据等。而线程是在同一个进程下的小程序,它们可以“同时”地运行,其..
分类:
编程语言 时间:
2014-08-08 16:26:57
阅读次数:
231