synchronized锁问题,呵呵挺有意思,整不明白了呢
m1和m2是两个不同的synchronized,不存在锁定问题,所以有没有synchronized都一样.
m1和m2哪个后执行就是第三个数.
执行过程:
创建并初始化b为100
m1或m2
主函数的输出
理论上应该m1先,但由于线程启动速度问题,有时也会m2先
怎么编译Chrome for Android
编译Chrome for Android目前有两种方式,一是在ROM编译环境下编出libchromeview.so,二是用Chromium主干的代码编译出ContentShell(一个测试用的外壳,只包含核心的代码,不包含Chrome的扩展特性,这两种方式目前都只支持在64位Ubuntu下面进行。
--------------------------------------------------------------------------------
在ROM编译环境下编出libchromeview.so
这种方式比较简单,下载当前版本Chrome for Android的tarball,解压后把Chrome目录放入ROM目录的$ROM/external下面,然后按照README.Chrome_for_Android_SourceDistribution里面的说明进行编译即可。
1.编译出来的libchromeview.so,可以按照README.Chrome_for_Android_SourceDistribution说明打一个新的Chrome.apk运行,也可以直接替换掉手机里面/data/data/com.android.chrome/下面的libchromeview.so运行;
2.不知道是不是版本不匹配的关系,用最新的Chrome搭配自己编译的libchromeview.so,复杂的网页会崩溃,简单的网页就还OK;
3.可以输出日志(#include “/base/logging.h“),但是没法调试和跟踪(理论上应该可以使用命令行gdb进行调试,不过配置起来应该比较麻烦,没有去尝试);
--------------------------------------------------------------------------------
用Chromium主干的代码编译出ContentShell
这种方式比较麻烦
1.下载Chromium的tarball后需要使用gclient sync -nohooks同步新的代码,tarball里面的svn记录是1.6版本的,如果你的svn是1.7版本,需要先downgrade到1.6版本;
2.同步最新代码的时候,如果提示guava和jsr-305这两个目录同步错误,需要先移除$SRC/third_party/guava和$SRC/third_party/jsr-305后再重新同步(后续新的tarball应该不需要了);
3.gclient runhooks一直失败,不过貌似也不影响编译;
4.如果编译时提示缺少$SRC/build/util/LASTCHANGE文件,可以从上面的Chrome for Android的tarball里面copy过来;
5.运行build/android/adb_gdb_content_shell就可以使用gdb进行调试;
6.adb_gdb_content_shell实际上调用了adb_gdb,adb_gdb在中文Ubuntu环境下有一个bug,第861行”if [ “$STATE“ != “Running“ ]; then“可能会失败,因为在中文环境STATE实际值可能是”运行中“,这一行需要改成”if [ “$STATE“ != “运行中“ ]; then“;
如何在ubuntu13.10安装谷歌浏览器chrome
用命令重启试试呢
sudo
shutdown
-r
now
出现代码是正常的,后面应该是保存退出的意思吧。