Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Windows同步对象Event和Linux的条件变量

Windows同步对象Event和Linux的条件变量

最近在看一些同步对象模拟的东东,特别对在Windows下如何模拟条件变量折腾了很久。1 Windows同步对象Event微软有一个很有意思的同步对象,某种程度上和Linux的条件变量很相似。但秉承微软一贯的作风,有些地方设计的又有点怪异。Event通过函数CreateMutex创建,可以分为手动模式和自动模式两种模式,两种模式下表现迥异。和其他同步对象一样,在WaitForSingleObject或者WaitForMultipleObjects等待激发。激...
Android的CursorLoader用法小结

Android的CursorLoader用法小结

工作内容集中到Contact模块,这个应用查询数据的地方很多,其使用了CursorLoader这个工具大大简化了代码复杂度。Android自3.0提供了Loader机制,当时google的API只是简单的介绍了一下没有给出用法,大家很少有关注。后来因为重度模型下的性能优化,R&D的朋友发现这个东西非常给力,这才开始注意到这个强大的工具。CursorLoader是Loader的子类,可以说是Loader的升级版。这篇小结以loader为基础说明,弄懂...
Activity状态的保存与恢复

Activity状态的保存与恢复

一、临时性数据首先说明一下一般控件的状态是不需要你写代码去保存的,因为Android框架中几乎所有UI控件都实现了onSaveInstanceState方法, 因此当Activity销毁和重建时, 这些UI控件会自动保存和恢复状态数据。当然你也不能什么都不做,你需要为这些控件指定一个id,剩下的事情框架会自己去做,如果你不指定id,那么控件的状态数据是不会自动保存和恢复的。下面来详细说明一下onSaveInstanceState和onRestoreInst...
Android 程序导航页面appguide的制作【附源码】

Android 程序导航页面appguide的制作【附源码】

导航页面的制作比较简单,可以用viewflipper实现也可以用viewpager实现,如果觉得没有技术含量还可以自己写个viewgroup实现。最后我会附上一个用viewflipper实现的源码和一个用viewgroup实现的源码,欢迎下载。重点是神马呢?重点是我的导航页面用一个activity写了,但是这个activity只能启动一次,第二次就不能启动了而是直接启动程序的主界面了。大家注意manifest.xml中activity的注册,最先启动的ac...
Android Studio使用教程

Android Studio使用教程

今年的Google全球开发者大会虽然没有新的Android系统和设备,但是还是推出了一些不错的产品,Android Studio就是其中之一。这个基于Intellij IDEA开发的Android IDE让很多人眼前一亮,其实时编写布局文件实时预览并适配多屏的功能可以说让苦于界面布局开发的人看到了希望。代码自动提示、运行响应速度、都比Eclipse来的要好。但这次推出的版本毕竟是预览版,所以改进的控件还有很大,大家也不要吐槽不好或难用,有空间,所以才有进步...
并发遍历二叉树 Java 实现

并发遍历二叉树 Java 实现

单线程遍历二叉树是数据结构书中必讲的算法, 但多线程访问呢?我最近写了一个多线程遍历二叉树的算法, 当然既然是多线程,就不保证一定的顺序, 只要节点能访问到就算数.算法的基本思路1) 使用 java.util.concurrent.ThreadPoolExecutor 构造线程池2) 当线程池有空余线程把树的右子树拆分给另外一个线程处理, 否则自己处理右子数要考虑的情况1) 如果二叉树非常不平衡(左子树很深,右子树很浅), 会出现一个线程忙碌,而另外一个线...
Struts2的入门实例

Struts2的入门实例

首先用myeclipse创建一个web project ,然后将下面几个包放入WEB-INF/lib中,如下图:如果看不到WEB-INF文件夹之下的classes文件夹,可以利用如下方法解决该问题:打开Navigator视图就可以看到(在bin文件夹下),打开改视图的方法:Window→Show View→Navigator。然后在classes文件夹下面新建一个struts.xml文件。结果如下:下面对整个示例程序做一个介绍,实现的功...
Linux Shell编程语法(变量及其赋值)

Linux Shell编程语法(变量及其赋值)

Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)中间不能有空格,可以使用下划线(_)不能使用标点符号不能使用bash里的关键字(可用help命令查看保留关键字)需要给变量赋值时,可以这么写:变量名=值要取用一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在"="两边留空格 )#!/bin/sh # 对变量赋值: a="hello world" #等号两边均不能有空格存在 ...
U-Boot之u-boot-2009.11启动过程分析

U-Boot之u-boot-2009.11启动过程分析

注:本文使用的u-boot源码版本为u-boot-2009.11相关阅读:U-Boot源代码下载地址 http://www.linuxidc.com/Linux/2011-07/38897.htmu-boot同其他bootloader一样,其启动过程分为stage1和stage2两个阶段, stage1主要完成基本硬件设备初始化和为加载stage2部分的代码准备RAM空间,stage2则是为引导内核准备环境。下面分两部分来分析u-boot启动的两个阶段。一...
Makefile之大型工程项目子目录Makefile的一种通用写法

Makefile之大型工程项目子目录Makefile的一种通用写法

管理Linux环境下的C/C++大型项目,如果有一个智能的Build System会起到事半功倍的效果,本文描述Linux环境下大型工程项目子目录Makefile的一种通用写法,使用该方法,当该子目录内的文件有增删时无需对Makefile进行改动,可以说相当的智能。下面先贴代码(为减小篇幅,一些非关键的代码被去掉,本方法的局限是用于一个C文件生成一个可执行文件的场合):ROOTDIR = .EXE_DIR = ./binCFLAGS = -I$(INCLU...
Makefile之写demo时的通用Makefile写法

Makefile之写demo时的通用Makefile写法

前面的一篇文章Makefile之大型工程项目子目录Makefile的一种通用写法介绍了大型项目子目录Makefile的一种通用写法,然而最近在写Linux网络方面的demo,一个目录下有几个文件,如果手工输命令显得太不专业了。于是按该博文的方法改编了一下Makefile,也当学习之用。该Makefile适用于一个C文件生成一个可执行程序的场景,使用该方法当工程目录内的文件有增删时无需对Makefile进行改动,可以说相当的智能。如果对patsubst、wi...
Shell脚本简单总结及编写脚本中的小技巧

Shell脚本简单总结及编写脚本中的小技巧

主要从以下几个方面进行bash入门级的总结:1、命令历史、命令补全2、管道、重定向3、命令别名和命令替换4、命令行编辑5、文件名通配6、Bash的相关配置文件及变量7、编程(条件判断、循环控制)8、bash中的数组9、shell编程技巧和编程规范1、命令历史、命令补全查看命令历史:history-c:清空命令历史-d OFFSET [n]: 删除指定位置的命令-w:保存命令历史至历史文件中,这对于经常在不同的终端上执行命令很有用命令历史的使用技巧:!n:执...
<< 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 >>