Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Java线程同步之CountDownLatch

Java线程同步之CountDownLatch

1、类说明jdk的concurrent包中的CountDownLatch类是一个线程同步的辅助类,它使得线程可以一直等待在其它线程中执行的操作,直到此操作结束。CountDownLatch在初始化的时候指定一个大小值N,调用CountDownLatch的await方法的线程会陷入等待之中,直到这个CountDownLatch对象的countDown方法被调用N次为止,无论是在一个线程中调用N次,还是在N个线程中被调用一次。只有这个对应的CountDownL...
Netty的ChannelFuture

Netty的ChannelFuture

在Netty中的所有的I/O操作都是异步执行的,这就意味着任何一个I/O操作会立刻返回,不保证在调用结束的时候操作会执行完成。因此,会返回一个ChannelFuture的实例,通过这个实例可以获取当前I/O操作的状态。ChannelFuture为完成或未完成状态。完成和未完成可对应的各种I/O操作结果如下所示* + ---------------------------+* | Completed successfully |* + -----------...
Netty的ChannelPipeline

Netty的ChannelPipeline

1、如何理解Netty的ChannelPipeline在Netty中,每个Channel被创建的时候都需要被关联一个对应的pipeline(通道),这种关联关系是永久的(整个程序运行的生命周期中)。ChannelPipeline可以理解成一个消息( 或消息事件,ChanelEvent)流转的通道,在这个通道中可以被附上许多用来处理消息的handler,当消息在这个通道中流转的时候,如果有与这个消息类型相对应的handler,就会触发这个handler去执行...
C++中的位运算符

C++中的位运算符

等级考试要考C++,我平时得留心着点儿,经常总结一下,会有好处吧,先总结一下C++中的运算符。在我们学习的VB编程语言中运算符都包含了那么几类:算术运算符、逻辑运算符、关系运算符、赋值运算符等。这算是C++与其的共性吧。当然作为一门独立的语言,它也会有专门属于自己的运算符。或者说目前我认为,这个是我新接触到的一些运算符(其他的编程语言没怎么接触过)。1、位运算符一种二进制运算符,分为移位运算和按位运算。此运算符,在操作时,要先将操作数按二进制形式逐位进行逻...
C++中的特殊运算符

C++中的特殊运算符

上一节介绍了有关C++中的位运算符(http://www.linuxidc.com/Linux/2014-01/95746.htm),这一节继续学习一下C++中的其它运算符。以加深对各种运算符的理解。1.++自增、- - 自减此运算符可分为前置和后置两种形式。所谓前置,就是运算符在操作数的前面,后置就是指运算符在操作数的后面。在这里,二者还是有很大的不同的。强调:后置运算符的优先级高于前置运算符例如:i++; //后置- -j; ...
如何在Hadoop的MapReduce程序中处理JSON文件

如何在Hadoop的MapReduce程序中处理JSON文件

简介:尽量在写MapReduce程序处理日志时,需要解析JSON配置文件,简化Java程序和处理逻辑。但是Hadoop本身似乎没有内置对JSON文件的解析功能,我们不得不求助于第三方JSON工具包。这里选择json-simple实现我们的功能。在Hadoop上执行Java程序的命令如下所示:[hadoop@localhost]$ hadoop jar my-mapreduce.jarmy-mapreduce.jar是我们进行日志处理的MapReduce程序...
PHP里10个鲜为人知但却非常有用的函数

PHP里10个鲜为人知但却非常有用的函数

PHP里有非常丰富的内置函数,很多我们都用过,但仍有很多的函数我们大部分人都不熟悉,可它们却十分的有用。这篇文章里,我列举了一些鲜为人知但会让你眼睛一亮的PHP函数。levenshtein()你有没有经历过需要知道两个单词有多大的不同的时候,这个函数就是来帮你解决这个问题的。它能比较出两个字符串的不同程度。用法:<?php$str1 = "carrot";$str2 = "carrrott";echo levenshtein($str1, $str2...
C#之重构与重载

C#之重构与重载

1、先说重构,接着这篇的例子(http://www.linuxidc.com/Linux/2014-01/95950.htm),猫和狗类继承父类动物,但是他们都有叫这个方法,除了叫的声音不一样之外,其余的都是一样的,这样造成了代码的重复,如果要修改这个方法得同时修改这两个子类,非常的麻烦。这时候重构就起了很重要的作用。它将重复的代码提到父类,再加一个获得叫的方法就可以了。具体实现如下:class Animal{//将共有代码提到父类protected ov...
C#中的面向对象

C#中的面向对象

面向对象是一种设计思想,其实就是将一些功能进行封装,使得这个功能有一个可以使用的实体。比方说狗就可以当成一个对象,其完成的功能是叫。在C#中面向对象也是一样的,其也有三大属性:封装,继承,多态。下面就来看看是如何在C#中实现的。1、首先先说封装:还是以狗叫为例,其功能为叫,按照一般的写法就会在主窗体里面写一下代码就可完成Private void button1_Click(object sender,EventArgs e){ MessageBox.Sho...
C#之virtual 和abstract

C#之virtual 和abstract

前几天看到文哲的博客中有一个关于virtual和 abstract的区别问题。可以说当时也是模棱两可,也不太确定具体有什么区别,今天查了查,稍微有点收获,希望对您有所帮助:1、先说虚方法 virtual虚方法有自己的函数体,已经提供了函数实现,但是允许在子类中重写或覆盖。重写的子类虚函数就是被覆盖了。下面就来具体举个例子来说明一下:首先建立父类Animal,其中包含虚方法 Shout()classAnimal{ public virtual string...
Java高手速成秘籍——Eclipse鲜为人知的快捷键

Java高手速成秘籍——Eclipse鲜为人知的快捷键

Java高手速成秘籍——Eclipse鲜为人知的快捷键,错过本文,那你绝对是错过了成为Java高手的机会。查看资源:1. Ctrl+Shift+R:打开资源这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。2. Ctrl+shift+T: 打开类型(Open type)。如果你...
Java 反编译 JD-GUI / Jad / JadClipse

Java 反编译 JD-GUI / Jad / JadClipse

对于Java开发人员而言,没有源码可能让你无法忍受,不知道大家跟我是否有相同的感受?尤其是当调试debug遇到问题的时候,你是否有冲动并急需想了解第三方jar内部实现机制以及实现原理,以便为了更好的解决问题,高效的开发呢?当然对于技术大牛们,研究源码不是为了解决问题,而是为了某种“信仰”——淘金于优越代码架构。废话少说,当你苦于没有源码的时候,你可以通过大家熟知的jad命令反编译class来获得源码。更加简便...
Java引用类型String作为参数的一些问题

Java引用类型String作为参数的一些问题

一般来说,java里面A类调用B类的方法,并传递参数X()类型,因为通常实参是一个对象的引用,所以在B类的方法中修改传来的参数,在A类的原型也会发生变化。但我试过当实参为String类型时,在B类修改传入参数不会对A类的原型产生影响。为什么?public void Test1(){ String b = "123"; change(b); System.out.println(b);//tom}void change(String s){ s += "45...
Golang中slice切片的修改操作

Golang中slice切片的修改操作

本文主要介绍go语言中切片slice的增删修改操作。如果我们需要往切片中追加元素,可以使用内置的append()函数。这个函数接受一个需要被追加的切片,以及一个或者多个需要被追加的元素。如果我们需要往一个切片中追加另一个切片,那么我们必须使用...操作符来告诉Go语言将被添加进来的切片当成多个元素。例:s := []string{"A", "B", "C", "D", "E", "F", "G"} t := []string{"K", "L", "M", ...
<< 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 >>