搜索到与相关的文章
Java

java并发(九)线程通信

线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。例如,线程B可以等待线程A的一个信号,这个信号会通知线程B数据已经准备好了。本文将讲解以下几个JAVA线程间通信的主题:1、通过共享对象通信2、忙等待3、wait(),notify()和notifyAll()4、丢失的信号5、假唤醒6、多线程等待相同信号7、不要对常量字符串或全局对象调用wait()1、通过共享对象通信线程间发送信号的一个简单方式是在共享对象的变量里设

系统 2019-08-29 23:08:56 2685

Android

Android高手进阶教程(四)之----Android 中自定

今天我们的教程是根据前面一节扩展进行的,如果你没有看,请点击Android高手进阶教程(三)查看第三课,这样跟容易方便你的理解!在xml文件里定义控件的属性,我们已经习惯了android:attrs="",那么我们能不能定义自己的属性能,比如:test:attrs=""呢?答案是肯定的.好了我就不卖关子了,直接进入主题。大致以下步骤:一、在res/values文件下定义一个attrs.xml文件.代码如下:一、在res/values文件下定义一个attrs

系统 2019-08-29 23:00:04 2685

编程技术

数据结构中的前序后序中序遍历

前一阵去面试,考了一道二叉树的后序遍历,就知道是数据结构里面的,但是忘了具体怎样遍历了。所以这里记下来,备忘。1后序遍历指在访问根结点、遍历左子树与遍历右子树三者中,首先遍历左子树,然后遍历右子树,最后遍历访问根结点,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后遍历根结点。后序遍历有递归算法和非递归算法两种。如下图:遍历结果:DEBFCA2.前序遍历也叫做先根遍历、先序遍历,可记做根左右。前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。

系统 2019-08-29 22:19:26 2685

编程技术

MVC介绍

MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。MVC模式最早是smalltalk语言研究团提出的

系统 2019-08-12 09:30:27 2685

Java

深入探讨 Java 类加载器

类加载器是Java语言的一个创新,也是Java语言流行的重要原因之一。它使得Java类可以被动态加载到Java虚拟机中并执行。类加载器从JDK1.0就出现了,最初是为了满足JavaApplet的需要而开发出来的。JavaApplet需要从远程下载Java类文件到浏览器中并执行。现在类加载器在Web容器和OSGi中得到了广泛的使用。一般来说,Java应用的开发人员不需要直接同类加载器进行交互。Java虚拟机默认的行为就已经足够满足大多数情况的需求了。不过如果

系统 2019-08-12 09:29:51 2685

编程技术

算法系列15天速成——第四天 五大经典查找【上】

在我们的生活中,无处不存在着查找,比如找一下班里哪个mm最pl,猜一猜mm的芳龄.......对的这些都是查找。在我们的算法中,有一种叫做线性查找。分为:顺序查找。折半查找。查找有两种形态:分为:破坏性查找,比如有一群mm,我猜她们的年龄,第一位猜到了是23+,此时这位mm已经从我脑海里面的mmlist中remove掉了。哥不找23+的,所以此种查找破坏了原来的结构。非破坏性查找,这种就反之了,不破坏结构。顺序查找:这种非常简单,就是过一下数组,一个一个的

系统 2019-08-12 09:29:45 2685

Python

How to install Pygame for Python 3.4 on Ubun

Firstrunthistoinstalldependencies:sudoapt-getinstallmercurialpython3-devpython3-numpy\libsdl-image1.2-devlibsdl-mixer1.2-devlibsdl-ttf2.0-devlibsmpeg-dev\libsdl1.2-devlibportmidi-devlibswscale-devlibavformat-devlibavcodec-devlibfr

系统 2019-08-12 09:27:29 2685

数据库相关

Vim常用命令及快捷键

Vim常用命令及快捷键光标控制命令命令光标移动h或^h向左移一个字符j或^j或^n向下移一行k或^p向上移一行l或空格向右移一个字符G移到文件的最后一行nG移到文件的第n行w移到下一个字的开头W移到下一个字的开头,忽略标点符号b移到前一个字的开头B移到前一个字的开头,忽略标点符号L移到屏幕的最后一行M移到屏幕的中间一行H移到屏幕的第一行e移到下一个字的结尾E移到下一个字的结尾,忽略标点符号(移到句子的开头)移到句子的结尾{移到段落的开头}移到下一个段落的开

系统 2019-08-12 01:55:19 2685

数据库相关

收缩表段(shrink space)

--====================--收缩表段(shrinkspace)--====================一、表的增长方式当表被创建后,随着记录的不断插入,组成表的区间会被填满,如果启用了自动扩展,则当区间填满后,会分配新的区间。假定高水位线随着记录的增加从最左端往右端来移动,当到底部区间的尾端时,则新的区间将会被分配。二、表可收缩的原理随着记录的增加高水位线不断的右移,记录的删除不会导致高水位线往回(左)移动删除记录后的空闲空间(高水

系统 2019-08-12 01:53:49 2685

数据库相关

join的例子

直接上代码:片段1:>>>deffunc(x):print(','.join(str(i)foriinrange(1,x+1)))>>>func(5)1,2,3,4,5>>>func(10)1,2,3,4,5,6,7,8,9,10片段2:>>>deffunc(x):foriinrange(1,x+1):print(','.join(str([j,'password'][j==i])forjinrange(1,x+1)))>>>func(10)passwor

系统 2019-08-12 01:52:57 2685