现在的位置: 首页
0℃

Java多线程notify&notifyall的区别

2012年05月13日 Android, java, 终端开发  ⁄ 被围观 726 次+
当一个线程进入wait之后,就必须等其他线程notify/notifyall,使用notifyall,可以唤醒 所有处于wait状态的线程,使其重新进入锁的争夺队列中,而notify只能唤醒一个。注意,任何时候只有一个线程可以获得锁,也就是说只有一个线程可以运行synchronized 中的代码,notifyall只是让处于wait的线程重新拥有锁的争夺权,但是只会有一个获得锁并执行。   那么notify和notifyall在效果上又什么实质区别呢? 主要的效果区别是notify用得不好容易导致死锁,例如下面提到的例子。   public synchronized void put(...
阅读全文

Wopus问答

0℃

linux下Google的Protobuf安装及使用笔记

2012年05月13日 Android, C++, java, 操作系统, 终端开发  ⁄ 被围观 1,104 次+
protobuf 项目主页:http://code.google.com/p/protobuf/ 下载:http://code.google.com/p/protobuf/downloads/list protobuf-2.4.1.tar.gz 解压后进入protobuf-2.4.1目录进行安装: 1、./configure(注:默认可能会安装在/usr/local目录下,可以加--prefix=/usr来指定安装到/usr/lib下,可以免去路径的设置,路径设置见Linux命令pkg-config) ./configure --prefix=/usr/local/protobuf 2、make 3、make check 4、make install(需要超级用户root权限) 二、使用 1、写proto文件,定义消息具体格式。如:helloworld...
阅读全文
0℃

Protobuf C++ serialize到char*的方法

2012年05月13日 C++, linux, 操作系统  ⁄ 被围观 869 次+
protobuf的Demo程序是 C++版本的protubuf有几种serialize和unSerialize的方法: 方法一: 官方demo程序采用的是 // Write the new address book back to disk. fstream output(argv[1], ios::out | ios::trunc | ios::binary); if (!address_book.SerializeToOstream(&output)) { cerr << "Failed to write address book." << endl; return -1; }   // Read the existing address book. fstream input(argv[1], ios::in | ios::binary); if (!input) { cout << argv[1] << ": Fi...
阅读全文
0℃

详解Google-ProtoBuf中结构化数据的编码

2012年05月11日 Android, C++, java, 操作系统, 终端开发  ⁄ 被围观 796 次+
原文:http://www.wuzesheng.com/?p=1258 本文的主要内容是google protobuf中序列化数据时用到的编码规则,但是,介绍具体的编码规则之前,我觉得有必要先简单介绍一下google protobuf。因此,本文首先会介绍一些google protobuf相关的内容,让读者朋友对google protobuf有一个初步的印象,然后,再开始进入正题—-深入浅出地介绍google protobuf中用到的编码规则。下面言归正传,开始今天的话题。 1. Google-ProtoBuf是什么 ProtoBuf,全称是Protocol Buffers, 它是谷歌内部用的一种高效的、可扩展的对结构化数据...
阅读全文
0℃

Java protobuf框架使用向导

2012年05月11日 Android, C++, java, 操作系统, 终端开发  ⁄ 被围观 810 次+
  ProtoBuf,全称是Protocol Buffers, 它是谷歌内部用的一种高效的、可扩展的对结构化数据进行编码的格式规范。谷歌自己内部很多程序之间的通信协议都用了ProtoBuf。 下面介绍的是使用Java ProtoBuf的基本步骤: 1.http://code.google.com/p/protobuf/downloads/list ,选择其中的win版本下载 2.下载一个protobuf-java-2.4.1.jar文件(注意,要与你刚才下的proto.exe版本相同,否则可能出现编译通不过现象) http://grepcode.com/snapshot/repo1.maven.org/maven2/com.google.protobuf/protobuf-java/2.4.1 3...
阅读全文
0℃

Android日期时间格式国际化

2012年05月11日 Android, 终端开发  ⁄ 被围观 759 次+
在做多语言版本的时候,日期时间的格式话是一个很头疼的事情,幸好Android提供了DateFormate,可以根据指定的语言区域的默认格式来格式化。直接贴代码: public static CharSequence formatTimeInListForOverSeaUser( final Context context, final long time, final boolean simple, Locale locale) { final GregorianCalendar now = new GregorianCalendar();   // special time if (time < MILLSECONDS_OF_HOUR) { return ""; }   // today final GregorianCalendar today = new GregorianCalenda...
阅读全文
0℃

Android中string.xml使用总结

2012年05月11日 Android, 终端开发  ⁄ 被围观 696 次+
<b></b>加粗字体   <i></i> 斜体字体   <u></u> 给字体加下划线   \n 换行   \u0020表示空格   \u2026表示省略号   使用&lt;b>和&lt;b>来打印出<b></b> 这样的文字;“&lt;”表示“<”的意思;   使用textView.setText(Html.fromHtml("Hello <b>World</b>,<font size=\"3\" color=\"red\">AnalysisXmlActivty!</font>"));设置类似于html那样的效果   如果你需要使用 String.f...
阅读全文
0℃

Update plug-in ant from 1.7 to 1.8

2012年04月01日 Android, 终端开发  ⁄ 被围观 1,114 次+
目前版本的ADT(10.0.1)需要Ant 1.8的支持 如果不更新1.8,会报以下的错误: The Android Ant-based build system requires Ant 1.8.0 or later. Current version is 1.7.1... 1)到网站(http://ant.apache.org/)下载Ant的目前最新的版本1.8 2)下载解压到本地的一个目录, 如 /opt/apache-ant-1.8.2 3)打开eclipse->Preferences->Ant->Runtime 删除 Ant Home Entries下关于1.7的所有选项, 然后 点击 Ant Home ,点位到已经解压出来的ant( /opt/apache-ant-1.8.2) 一次点击确定/OK 即可。   转自...
阅读全文
0℃

第2章 进程及进程调度

2012年03月30日 C++, linux, 操作系统  ⁄ 被围观 765 次+
几个关键字: 进程结构task_struct;系统task_stuct数组; 进程状态: 进程时间片; 进程切换时,系统需要做那些保存操作; 进程创建过程,fork(); 工作队列; 进程调度。
阅读全文
0℃

《Linux内核分析及编程》第一章 数据类型及链表

2012年03月30日 C++, linux, 操作系统  ⁄ 被围观 750 次+
本章完全是基础知识了,归纳下几点: 在不同的CPU体系结构上,C语言的数据类型所占的空间是不一样的; 为了方便移植,内核中很多数据类型由typedef声明; 内存页面大小; 字节对齐方式:低字节优先&高字节优先; 内核通用链表; 行内汇编的格式; 内核时间延迟;
阅读全文
×
腾讯微博