摘要: #! /usr/bin/env python # -*- coding:utf-8 -*- def my_sum(*arg): return sum(arg) def my_average(*arg): return sum(arg)/len(arg) #print(my_sum(1,2,3,4,5)) #print(my_sum(1,2,3,4,5,'6')) #报错。... 阅读全文
posted @ 2017-08-09 17:05 晴空半岛 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 闭包就是内置函数对enclosing 作用域变量的一个使用将这个变量放到__closure__这个属性中,当内置函数需要处理时可以直接拿过来使用 闭包作用1.封装2.代码复用 阅读全文
posted @ 2017-08-09 16:11 晴空半岛 阅读(139) 评论(0) 推荐(0) 编辑
摘要: class BoundedBuffer { final Lock lock = new ReentrantLock();//锁 final Condition notFull = lock.newCondition(); //生产 final Condition notEmpty = lock.newCondition(); //消费 final Object[] i... 阅读全文
posted @ 2017-08-08 20:45 晴空半岛 阅读(198) 评论(0) 推荐(0) 编辑
摘要: synchronized和Lock的区别synchronize锁对象可以是任意对象,由于监视器方法必须要拥有锁对象那么任意对象都可以调用的方法所以将其抽取到Object类中去定义监视器方法这样锁对象和监视器对象是同一个,只要创建了锁对象它既是锁对象同时也是监视器对象这样不能实现在一个锁对象上绑定多个 阅读全文
posted @ 2017-08-08 20:29 晴空半岛 阅读(302) 评论(0) 推荐(0) 编辑
摘要: /* 多线程下的单例-懒汉式会有多线程问题 饿汉式不会有多线程问题 */ //饿汉式 class Single { private static final Single s = new Single(); //final修改的变量必须要显示初始化 private Single() {} //构造函数私有化不让外界创建对象 public static Single ... 阅读全文
posted @ 2017-08-08 20:20 晴空半岛 阅读(164) 评论(0) 推荐(0) 编辑
摘要: class Ticket implements Runnable { //1.描述票的数量 private int tickets = 100; //2.售票的动作,这个动作需要被多线程执行,那就是线程任务代码,需要定义run方法中 //线程任务中通常都有循环结构 private Object obj = new Object(); ... 阅读全文
posted @ 2017-08-08 20:05 晴空半岛 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 案例:售票的例子。 售票的动作需要同时执行,所以使用多线程技术。 发生了线程安全问题:出现了错误的数据。0 -1 -2 问题产生的原因;******* 1,线程任务中在操作共享的数据。 2,线程任务操作共享数据的代码有多条(运算有多个)。 解决思路:***** 只要让一个线程在执行线程任务时将多条操作共享数据的代码执行完, 在执行过程中,不要让其他线程参与运算。就哦了。 代码体现呢?... 阅读全文
posted @ 2017-08-08 19:56 晴空半岛 阅读(443) 评论(0) 推荐(0) 编辑
摘要: class Ticket implements Runnable { //1.描述票的数量 private int tickets = 100; //2.售票的动作,这个动作需要被多线程执行,那就是线程任务代码,需要定义run方法中 //线程任务中通常都有循环结构 public void run() { while (true) ... 阅读全文
posted @ 2017-08-08 19:46 晴空半岛 阅读(235) 评论(0) 推荐(0) 编辑
摘要: /* 死锁:常见情景之一:同步的嵌套。 */ class Ticket implements Runnable { private int num = 100; Object obj = new Object(); boolean flag = true; public void run() { if(flag) { ... 阅读全文
posted @ 2017-08-07 19:37 晴空半岛 阅读(178) 评论(0) 推荐(0) 编辑
摘要: PyCharm 4.5.4 环境配置 1、去掉“自动保存功能” pycharm默认是自动保存的,习惯自己按 ctrl + s 的可以进行如下设置: 菜单File -> Settings... -> Appearance & Behavior -> System Settings 去掉以下2个选项的选 阅读全文
posted @ 2017-08-01 17:19 晴空半岛 阅读(2358) 评论(0) 推荐(0) 编辑