sub

notify 和 notifyAll 的区别

筅森魡賤 提交于 2020-03-28 06:33:19
(一)先看一个 notify发生死锁的例子: http://blog.csdn.net/tayanxunhua/article/details/20998449 (本文虽是转载,不过也加入了一些个人观点) JVM多个线程间的通信是通过 线程的锁、条件语句、以及wait()、notify()/notifyAll组成。 下面来实现一个启用多个线程来循环的输出两个不同的语句: package com.tyxh.block; class OutTurn { private boolean isSub = true ; private int count = 0; public synchronized void sub() { try { while (! isSub ) { this .wait(); } System. out .println( "sub ---- " + count ); isSub = false ; this .notify(); } catch (Exception e) { e.printStackTrace(); } count ++; } public synchronized void main() { try { while ( isSub ) { this .wait(); } System. out .println( "main (((((((

修改ListBox行高

不打扰是莪最后的温柔 提交于 2020-03-27 05:10:42
''修改ItemHeight无效 Private Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ListBox1.DrawItem e.DrawBackground() e.DrawFocusRectangle() '' 让文字位于Item的中间 '' Dim difH as single = (e.Bounds.Height - e.Font.Height) / 2 '' dim rf as RectangleF = New RectangleF(e.Bounds.X, e.Bounds.Y + difH, e.Bounds.Width, e.Font.Height) '' e.Graphics.DrawString(listBox1.Items(e.Index).ToString(), e.Font, New SolidBrush(e.ForeColor), rf) e.Graphics.DrawString(ListBox1.Items(e.Index).ToString(), e.Font, New SolidBrush(Color.Black), e.Bounds) End Sub Private Sub ListBox1_MeasureItem(sender As

Python help函数

孤街醉人 提交于 2020-03-26 11:10:22
python 3.x版本虽然比2.x少了一些内置函数,但是 python 内置 函数没有60个,也有40个,那么多内置函数你记得过来吗?为了方便使用,python 提供了help函数专门用来提供查看函数或模块用途的详细说明; 一.help函数简介 语法如下: help([object]) 参数: object – 对象/函数名/模块; 返回值 – 返回对象的帮助信息; 二.help函数使用 1.查看内置函数的帮助信息 print(help(type)) # 内置函数type - 获取数据变量类型 输出结果: Help on class type in module builtins: class type(object) | type(object_or_name, bases, dict) | type(object) -> the object's type | type(name, bases, dict) -> a new type | | Methods defined here: | | __call__(self, /, *args, **kwargs) | Call self as a function. | | __delattr__(self, name, /) | Implement delattr(self, name). | | __dir__(...)

日历控件

前提是你 提交于 2020-03-24 06:03:20
calendar.htm: < html > < head > < meta http-equiv ="Content-Type" content ="text/html; charset=gb2312" > < title ></ title > < link rel ="stylesheet" type ="text/css" href ="../setstyle.css" > </ head > < body topmargin =0 leftmargin =0 bgcolor =#3974AE > < center > < table border ="1" width ="245" cellspacing ="0" cellpadding ="0" bordercolor ="#ABC7E2" bordercolordark ="#FFFFFF" bordercolorlight ="#808080" height ="160" > < tr > < th width ="100%" align ="center" > < table border ="0" cellspacing ="0" cellpadding ="0" > < tr > < th valign ="middle" width ="10%" >< img border ="0" src ="..

JS轮播特效+导航二级菜单

旧城冷巷雨未停 提交于 2020-03-22 12:37:47
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>demo</title> <link rel="stylesheet" href="1.css"> <link rel="stylesheet" href="fonts/iconfont.css"> </head> <body> <div class="main" id="main"> <!-- 子导航 --> <div class="sub-menu hide" id="sub-menu"> <div class="inner-box"> <div class="sub-inner-box"> <div class="title">手机、配件</div> <div class="sub-row"> <span class="bold mr10">手机通讯:</span> <a href="">手机</a> <span class="ml10 mr10">/</span> <a href="">手机维修</a> <span class="ml10 mr10">/</span> <a href="">以旧换新</a> </div> <div class="sub-row"> <span class="bold mr10">手机配件:</span>

Codeforces 1159D The minimal unique substring(构造)

廉价感情. 提交于 2020-03-21 10:19:49
首先我们先观察三个串 1 01 0,11 01 10,111 01 110,答案都是红色部分,我们可以下一个结论,形如 abab ( a 中有非负整数个 1 , b 中只有一个 0 )这类的字符串答案恒为 2 ,也就是 k==2 ,然后就是用这类字符串去构造出我们所需的 k 。我们可以尝试从末尾加一个1,那么之前的串变成了 1 010 1,11 011 01,111 011 101,那么答案为红色部分。我们可以发现,通过我们末尾添加的1,导致之前红色部分的 01 与我们末尾添加的1与前面一个0构成的 01 重复,使得之前的红色部分向后挪一位。于是,我们可以用这一规律去构造出我们想要的k,显然答案就是末尾部分的01 (蓝色部分111...10111...1 0111 ) 满足 0 的个数加 1 的个数等于 k-1 ,那么对中间的影响 (绿色部分111...1 01111 1...110111) 往后挪一位也就是我们的答案 k ,最后就是算出这形如 abab 字符串 a 部分中的 1 的个数有多少就行了, 设 x 为 a 中 1 的个数 ,方程为 2*x+1+k-1=n ,化简为 x=(n-k)/2 ,根据题意 n 与 k 同奇偶,那么 x 也是唯一确定的,最后构造也由此生成。 1 // ——By DD_BOND 2 3 //#include<bits/stdc++.h> 4

savReaderWriter 模块的使用

房东的猫 提交于 2020-03-21 07:10:15
作用: 由于python可以辅助数据分析和数据挖掘,读取文件, 而savReaderWriter模块就是为此而设计。 官网 :http://pythonhosted.org/savReaderWriter/ 读取文件 with savReaderWriter.SavReader(filepath, ioUtf8=True) as read: # 如果不用ioutf8, 汉字十六进制\被转义,更麻烦 for i in read:        print i返回值: # getsavfileinfo infomation : # (self.numVars, self.nCases, self.varNames, self.varTypes,self.formats, self.varLabels, self.valueLabels) 读取文件头 with savReaderWriter.SavReader(filepath, ioUtf8=True) as read: ret = read.getSavFileInfo() # return (self.numVars, self.nCases, self.varNames, self.varTypes, # self.formats, self.varLabels, self.valueLabels) # return read

Pub/Sub模式

余生长醉 提交于 2020-03-17 07:43:14
1 var PubSub = { 2 subscribe: function(ev, callback) { 3 //创建 _callbacks 对象,除非它已经存在了 4 var calls = this._callbacks || (this._callbacks = {}); 5 //针对给定的事件 ev 创建一个数组,除非这个数组已经存在 6 //然后将回调函数追加到这个数组中 7 (this._callbacks[ev] || (this._callbacks[ev] = [])).push(callback); 8 return this; 9 }, 10 publish: function() { 11 //将 arguments 对象转换为真正的数组 12 var args = Array.prototype.slice.call(arguments, 0); 13 //拿出第1个参数,即事件名称 14 var ev = args.shift(); 15 16 //如果不存在 _callbacks 对象,则返回 17 //或者如果不包含给定事件对应的数组 18 var list, calls, i, l; 19 if (!(calls = this._callbacks)) return this; 20 if (!(list = this._callbacks

[Vendor]vendor subrange 学习

隐身守侯 提交于 2020-03-12 11:02:51
Vendor Sub-Ranges(VSRs)在SAP中的解释为 A subdivision of the full range of products offered by a vendor (e.g. the Henkel company has the subranges "adhesives" and "washing powder"). Individual conditions apply for each individual subrange. If a vendor has subranges, each item offered by the vendor must be assigned to the appropriate subrange to enable the system to correctly determine the conditions for the subrange. 举个例子,如果创建了一个叫做HP的供货商,会向其采购打印机和笔记本,但是打印机和笔记本这两种物料在采购过程中有很多不同,比如生产的工厂不同,比如付款的条件不同,等等。理论上这都属于HP这个vendor,那么为了在采购中有所区别,可以为vendor主数据建立sub-range 每一个sub-range可以维护不同的purchasing和partner数据。 首先

varnish缓存代理

喜夏-厌秋 提交于 2020-03-09 22:43:22
varnish缓存代理 varnish 缓存是 web 应用加速器,同时也作为 http 反向缓存代理。你可以安装 varnish 在任何 http 的前端,同时配置它缓存内容。与传统的 squid 相比,varnish 具有性能更高、速度更 快、管理更加方便等诸多优点。 varnish 完整配置实例 1、拓扑环境 Varnish:192.168.31.250 Web01:192.168.31.83 Web02:192.168.31.141 配置 web01、web02 做为后端服务器(过程略) 确保 varnish 服务器能正常访问 web01、web02 Varnish 缓存代理服务器配置: 安装 varnish 1、安装依赖关系的软件包(注:使用 centos 在线 yum 源) [root@varnish ~]# yum -y install autoconf automake libedit-devel libtool ncurses-devel pcre-devel pkgconfig python-docutils python-sphinx 2、安装 varnish Varnish 的官方网址为 http://varnish-cache.org,可以在这里下载最新版本的软件 。 下载地址: https://www.varnish-cache.org/content