Java 并发基础(二)
线程安全问题
线程安全问题是指当多个线程同时读写一个共享资源并且没有任何同步措施时,导致出现脏数据或者其他不可预见的结果的问题。线程 A 和线程 B 可以同时操作主内存中的共享变量,那么线程安全问 题和共享资源之间是什么关系呢?是不是说多个线程共享了资源,当它们都去访问这个共 享资源时就会产生线程安全问题呢?答案是否定的,如果多个线程都只是读取共享资源,而不去修改,那么就不会存在线程安全问题,只有当至少一个线程修改共享资源时才会存 在线程安全问题。最典型的就是计数器类的实现,计数变量 count 本身是一个共享变量,多个线程可以对其进行递增操作,如果不使用同步措施,由于递增操作是获取—计算—保存三步操作,因此可能导致计数不准确,如下所示。
Python装饰器示例
装饰器的本质是一个高阶函数。以下一段代码,当你使用 @log 时,Python 会根据你是否传参来选择不同的执行路径:
linux下编译和安装python3
Linux下大部分系统默认自带python2.x的版本,最常见的是python2.6或python2.7版本,默认的python被系统很多程序所依赖,比如centos下的yum就是python2写的,所以默认版本不要轻易删除,否则会有一些问题,如果需要使用最新的Python3那么我们可以编译安装源码包到独立目录,这和系统默认环境之间是没有任何影响的,python3和python2两个环境并存即可。