原题戳我。
来了就是猿
上次的FQ:从入门到放弃(一)介绍了XXNet的部署和基本使用。本文整理一些部署过程中出现的问题,都是这几天朋友们安装过程中出现的问题。如果覆盖不全,欢迎在博客下方评论,互相交流,互相学习。
然而题目和本文无关——本文乃XX-Net翻墙教程。
出于各种可描述和不可描述的理由,很多朋友需要翻墙。众多梯子(翻墙工具)中,XX-Net是至今最让我满意的,简单、免费、流量足。特整理一篇XX-Net翻墙教程,以我当年作为小白的标准,详细到几乎每一步都有截图,希望能够帮到朋友们。
可以使用JDK提供的Exchager类进行同步交换:进行数据交换的双方将互相等待对方,直到双方的数据都准备完毕,才进行交换。Exchager类很少用到,但理解数据交换的时机却十分重要,这是一个基于trade-off的系统设计。下述分析方法能扩展到诸多系统设计的场景中,帮助我们更好的进行trade-off。
有这样一个笑话:
程序猿追求一美女。
美女:你能让这个论坛的人都吵起来,我今晚就跟你走。
于是,程序猿在论坛上说道:PHP是最好的语言!
论坛炸锅了,各种吵架。。。
美女:服了你了,我们走吧。今天你想干啥都行。
程序猿:今天不行,我一定要说服他们!
PHP是不是世界上最好的语言,这个问题或许没有答案——当然,程序猿能不能追到女孩可能也没有答案。但是,如果说程序猿公认最棒的中文科幻小说,那就非《三体》莫属了。
非线程安全集合类(这里的集合指容器Collection,非Set)的迭代器结合了及时失败机制,但仍然是不安全的。这种不安全表现在许多方面:
如果不了解其不安全之处就随意使用,就像给程序埋下了地雷,随时可能引爆,却不可预知。
ArrayList是一个常用的非线程安全集合,下面以基于ArrayList讲解几种代表情况。