Welcome 微信登录

首页 / 操作系统 / Linux

用C++实现多线程Mutex锁(Win32)

用C++实现多线程Mutex锁(Win32)

本文目的:用C++和Windows的互斥对象(Mutex)来实现线程同步锁。 准备知识:1,内核对象互斥体(Mutex)的工作机理,WaitForSingleObject函数的用法,这些可以从MSDN获取详情; 2,当两个或更多线程需要同时访问一个共享资源时,系统需要使用同步机制来确保一次只有一个线程使用该资源。Mutex 是同步基元,它只向一个线程授予对共享资源的独占访问权。如果一个线程获取了互斥体,则要获取该互斥体的第二个线程将被挂起,直到第一个线程释...
mini2440 驱动ds18b20

mini2440 驱动ds18b20

想着有个ds18b20,于是就写了一个18b20的驱动。是在mini2440上面实现的。ldd3的大师说得好,linux驱动应该尽可能多的提供机制,而不是提供策略。我觉得说得太有道理了。驱动本身就不应该涉及到太多策略问题,策略问题应该尽可能多的由应用程序去提供。作为驱动,应该尽可能多得去实现提供硬件的功能,然后留出接口给上面的应用程序调用。其实ds18b20驱动比较简单,无非就是在单片机驱动18b20的基础上,家里一个字符驱动设备的外套。下面直接上代码吧。...
雷凌Ralink 2070 移植到Android记录

雷凌Ralink 2070 移植到Android记录

最近一段时间移植了ralink 2070的驱动到Android上面,网上虽然有ralink的移植文章,但是我按照步骤移植,还是出现了一些问题,比如识别不到网卡,搜不到网络等问题,所以我把移植的大概步骤记录下来,用于以后查询,下面就是大概的移植步骤1 在ralink官网http://www.ralinktech.com/en/index.php下载驱动2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0...
Handler的相关知识和应用

Handler的相关知识和应用

最近我在网路上查了很多关于handler的知识,但是感觉总是觉得有很多问题??1.为什么要使用handler?2.handler是异步的,创建一个handler实例是创建一个新的线程吗??(NO,没有创建新的线程,但是为什么没有阻塞主线程?这是有系统管理Looper的)3.在同一线程中,handler1发送消息,handler1能收到消息,handler2能收到吗?4.在子线程中,运用主线程中定义的handler,sendMessage,主线程中得hand...
深入理解Android 之界面构造

深入理解Android 之界面构造

UI界面,对于每个应用而言,是它与用户进行交互的门脸。好的门脸,不只是是要亮丽可人,最好还能秀色可餐过目不忘,甚至还应该有涵养有气质,彬彬有理温柔耐心。 对于开发者来说,锻造这样的面容,不但需要高超的技艺,也需要有称手的工具和对得起党的料子。俗话说,朽木不可雕也,芙蓉不是一日炼成的,不是什么平台都能叫特能书。有套好用的UI框架,对于开发者而言,真有如沙漠中的甘露,而要是撞见了杯具的UI套件,整个界面开发就有如梦魇了。 Android的UI框架,最核心的...
Android之Notification实现

Android之Notification实现

在我们的相应程序运行的时候为了不打断当前程序的运行,我们经常会使用Notification来告知用户有新来电或新的短信。下面先介绍一下toast的简单提醒:privatevoidbaseToast(){Toast.makeText(getApplicationContext(),"Hellotoast!",Toast.LENGTH_SHORT).show();}第一个参数是得到上下文,第二个是提醒的具体内容,第三个是提醒的时间。接下来看一下如何自定义一个T...
Android中选项卡TabHost的基本使用

Android中选项卡TabHost的基本使用

今天来学习一下选项卡(TabHost)的使用, 选项卡的使用很常见,比如说:我们在手机上面 已接来电,未接来电的分组,首先来看下实现出来的效果截图:我们要去实现TabHost,主要有两种方法:一1、各选项内容在布局文件中定义。2、主Activity类继承TabActivity;3、用getTabHost()方法获取TabHost二1、直接在布局文件中定义TabHost 注意:TabWidget的id必须是@Android:id/tabs,FrameLayo...
Android中的动画效果学习

Android中的动画效果学习

在Android中系统给我们提供了两种实现动画效果的方法,其中一种是Tween,还有一种是Frame动画; Tween动画中,我们可以通过Tween动画去使得视图实现视图放大,缩小,旋转,渐变等等功能;这个动画类在android.view.animation包下面,主要为我们提供以下的一些常用方法:(【注】以下对于些类的解释说明,是我看文档自己翻译的,可能有些地方不准确,也算是自己作为学习英语的机会,还请大家见谅一下哈)Animation 这是动画的抽象...
基于Android浮动组件 可用于应用中新功能展示等

基于Android浮动组件 可用于应用中新功能展示等

基于Android的浮动组件,可以用于应用中的新功能展示等等。 前言在开发Android应用时,加新功能是必不可少的,我们加入了新的功能,有的一看界面就可以看出来,但是有的新功能就比较隐蔽,也就是用户很难知道你添加了这个新功能,这个时候就需要用户在打开我们的应用时给出一些提示,说明我们在哪里添加了新功能,点击哪里可以看到这个新功能。这时我们第一时间想到的可能是Toast,因为它用法简单,又不影响用户操作,但是它有个缺点,就是不能明确的指示是哪里添加了新功能...
Qt输入输出

Qt输入输出

QIODevice类是对所有读和写一段字节块的一个抽象。Qt包含了下面的一些子类:QFile访问本地文件系统中的文件或嵌入的资源。QTemporaryFile创建或访问本地文件系统中的临时文件。QBuffer从一个QByteArrary中读数据或将数据写入到一个QByteArray中。QProcess运行外部程序并处理进程间的通信。QTcpSocket使用TCP协议传输一个数据流。QUdpSocket通过网络发送或接收UDP数据流。其中,QProcess,...
Qt线程基础

Qt线程基础

线程基础保谓线程?线程与并行处理任务息息相关,就像进程一样。那么,线程与进程有什么区别呢?当你在电子表格上进行数据结算的时候,在相同的桌面上可能有一个播放器正在播放你最喜欢的歌曲。这是一个两个进程并行工作的例子:一个进程运行电子表格程序;另一个进程运行一个媒体播放器。这种情况最适合用多任务这个词来描述。进一步观察媒体播放器,你会发现在这个进程内,又存在并行的工作。当媒体播放器向音频驱动发送音乐数据的时候,用户界面上与之相关的信息不断地进行更新。这就是单个进...
Python中Range和XRange的区别

Python中Range和XRange的区别

Python中Range和XRange的区别(Difference between Range and XRange in Python)最近机器出了点问题,所以一直没有写新的东西出来。之前在读Python的代码的时候,发觉好多人喜欢用XRange,而不是Range,我也只是 记得学习的时候开始学到的是Range,后面又看到有个XRange,当时也没有深究,为什么Python里面要有两个同样的功能的系统函数。今天再去仔 细查了下文档,原来它们之间还是有点区...
<< 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 >>