`
zhangziyueup
  • 浏览: 1168762 次
文章分类
社区版块
存档分类
最新评论
文章列表
import java.util.concurrent.Exchanger; /** * Exchanger让两个线程可以互换信息。 * 例子中服务生线程往空的杯子里倒水,顾客线程从装满水的杯子里喝水, * 然后通过Exchanger双方互换杯子,服务生接着往空杯子里倒水,顾客接着喝水 ...
import java.util.Random; import java.util.concurrent.CyclicBarrier; /** * CyclicBarrier类似于CountDownLatch也是个计数器, * 不同的是CyclicBarrier数的是调用了CyclicBarrier.await()进入等待的线程数, * 当线程数达到了CyclicBarrier初始时规定的数目时,所有进入等待状态的线程被唤醒并继续。 * CyclicBarrier就象它名字的意思一样,可看成是个障碍, * 所有的线程必须到齐后才能一起通过这个障碍。 * Cycli ...
import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * CountDownLatch是个计数器,它有一个初始数, * 等待这个计数器的线程必须等到计数器倒数到零时才可继续。 */ public class CountDownLatchTest { /** * 初始化组件的线程 */ public static class Component ...
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 有时候线程取得lock后需要在一定条件下才能做某些工作,比如说经典的Producer和Consumer问题。 * 在Java 5.0 ...
import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * BlockingQueue是一种特殊的Queue,若BlockingQueue是空的, * 从BlockingQueue取东西的操作将会 ...
import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; /** * Callable 和 Future接口 * Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。 * Callable和Runnable有几点不同: (1)Callable ...
每个人都希望职业上有成就,而不是碌碌无为的一生。然而,真正有成就的是少数,甚至对于职业生涯满意的恐怕也是少数。 综合来说,职业的发展必须有三要素:1,技能不断提升;2,选对行业;3,跟对人。 1.关于技能提升,在之前的博文也总结过,要经过3个层次,也就是从实施方法,具体方法,到抽象方法的掌握,不断挑战自我,不断进步,这本身也是一个历程,很少有人最后到达一览众山小的境界。 2.对于行业的选择,自古就有“男怕入错行,女怕嫁错郎”的古话。如果行业没有选择对的话,要付出更多的代价,才能有回报,虽然“360行,行行出状元”,但是那个毕竟是少数。如果在2000年选择互联网,在2010年进入项目型软件公 ...
软件开发这个职业,可能是最好的职业,也可能是最坏的职业。最好的职业就是,可以发挥你最大的创造力,可以不断提升自己,可以入行就有不错的待遇,甚至可能一夜暴富的机会等等。最坏的职业可能就是,新技术层出不穷,一不留神就可能被淘汰,必须花大量的时间学习充电,并且中国面临更大的成本压力等。 如何不断提升自己,是每个技术人员必须思考的问题。从技术能力上,可以大致划分为三个层次:第一个层次,掌握实施方法,如各种编程技巧等;第二个层次,掌握具体方法,如架构设计,解决方案等;第三个层次,掌握抽象方法,如设计模式,解决问题框架等。 第一个层次,掌握实施方法,基本上是程序员的要求,如掌握Java的各种语法 ...
这一两天现场实施的同事,发现系统的tomcat会因为内存溢出的情况出现假死的情况。现场的同事一时查不出问题,最后一招了写个脚本监控一下。 1 使用环境 操作系统:CentOS 4.8 JDK版本:j2sdk1.4.2 Tomcat版本:tomcat-5.0.28 2 监控脚本 #!/bin/bash # # Keep watch at tomcat's status, # automatically restart it if it dead or out of memory. export PATH=$PATH:/sbin:/bin:/usr/sbin:/usr/bi ...

OOP

. 想了想还是应该是这样的 抽象,继承,多态 都是为了封装,在想了一下,觉得封装不是目的,只是手段,所以觉得最终是这样的 重用是目的,其他的几个都是为它服务的
/*--修改/删除有默认值的字段 示例--*/ --测试表 Create Table t1( ID int Default(0), Name Varchar(16) Default(16), Memo Varchar(255) Default( ' ') ) go --要求,删除name字段,将memo字段改为: Memo Varchar(32) Default(32) --处理方法 ----a.先删除要处理字段的默认值约束 declare @s varchar(800 ...
1.首先我们创建一个表 Create Table test( ID int Default(0), Name Varchar(16) Default(16), ) 2.如果要为表增加一个列AGE,默认值为0 alter table test Add Age int Not Null CONSTRAINT DF_test_Age DEFAULT (0) WITH VALUES WITH VALUES这个参数的说明: 指定在添加到现有行的新列中存储 DEFAULT constant_expression 中所给定的值。只有在 ADD 列子句中 ...
“Word无法启动转换器mswrd632.wpc”又一Word常见问题,也是许多使用Word办公软件朋友经常遇到的故障之一。也不知道这阵子怎么了,许多网友纷纷提问说遇此问题导致Word打不开,都不知道该如何解决,这里Word联盟收集了一些网友的解决方法,马上给大家整理出来,希望能帮助大家解决此故障!   可能导致“Word无法启动转换器mswrd632.wpc”的原因有一下几种:   1、文件损坏导致;   2、安装的是破解版或精简版造成的问题;   3、Office办公软件组件丢失;   4、系统中了病毒或木马;   5、电脑中存有多个版本的Office办公软件,混乱了;   6 ...
IsNullOrWhiteSpace .NET Framework 4.0 中新增的一个函数,用来判断字符串是否为空(包括空格、NULL、String.Empty、和一行特殊的字符等),与.NET 以前的另一个函数IsNullOrEmpty()相比,这个函数的功能更强 if (!string.IsNullOrWhiteSpace(temp)) { //此处自定义代码 }File.Exists Directory.Exists用于判断文件夹或文件是否存在的函数 if (File ...
有一段时间, 没有写delphi的东东了. 昨天突然要写一个OCX, 但是jsp的页面上居然一直调用失败. 原因出在classid的选择上. 下面是jsp的代码 <div id="testdiv" style="width:100%;height:100%"> <object id="testid" classid="clsid:6CFAE108-AD70-49DC-BDB6-61F008148893" codebase="<%=basePath% ...
Global site tag (gtag.js) - Google Analytics