
网络通信-多线程
文章平均质量分 95
网络通信-多线程
FeelTouch Labs
技术架构、人工智能、区块链与密码学专家
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
What is an SSL certificate?
What is an SSL certificate?SSL certificates are what enable websites to move fromHTTPtoHTTPS, which is more secure. An SSL certificate is a data file hosted in a website'sorigin server. SSL ce...翻译 2019-09-11 20:15:04 · 739 阅读 · 0 评论 -
Java多线程系列-CountDownLatch
什么是阻塞队列阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。阻塞队列提供了四种处理方法:转载 2017-02-18 23:18:34 · 594 阅读 · 0 评论 -
Java多线程系列-ConcurrentHashMap
概述还记得大学快毕业的时候要准备找工作了,然后就看各种面试相关的书籍,还记得很多面试书中都说到:HashMap是非线程安全的,HashTable是线程安全的。那个时候没怎么写Java代码,所以根本就没有听说过ConcurrentHashMap,只知道面试的时候就记住这句话就行了…至于为什么是线程安全的,内部怎么实现的,通通不了解。今天我们将深入剖析一个比Hash转载 2017-02-18 23:13:45 · 826 阅读 · 0 评论 -
Java多线程系列-ThreadLocal
概述相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误的认知!看看JDK中的源码是怎么写的:This class provides thr转载 2017-02-18 23:07:31 · 1034 阅读 · 0 评论 -
Java多线程系列-Semaphore
概述Semaphore字面意思是信号量。他主要用于控制有限的资源的访问数量。我们看一个生活中常常出现的场景:一个厕所只有3个坑位,但是有10个人来上厕所,那怎么办?假设10的人的编号分别为1-10,并且1号先到厕所,10号最后到厕所。那么1-3号来的时候必然有可用坑位,顺利如厕,4号来的时候需要看看前面3人是否有人出来了,如果有人出来,进去,否则等待。同样的道理,4-10号也需转载 2017-02-18 23:04:17 · 790 阅读 · 0 评论 -
Java多线程系列-CyclicBarrier
概述JDK中提供了一些用于线程之间协同等待的工具类,CountDownLatch和CyclicBarrier就是最典型的两个线程同步辅助类。下面分别详细介绍这两个类,以及他们之间的异同点。CyclicBarrier类CyclicBarrier翻译过来就是:循环的屏障。什么是循环?可以重复利用呗,对这个类就是一个可以重复利用的屏障类。CyclicBarrier主要用于一组转载 2017-02-18 23:01:19 · 803 阅读 · 0 评论 -
Java多线程系列-CountDownLatch
概述JDK中提供了一些用于线程之间协同等待的工具类,CountDownLatch和CyclicBarrier就是最典型的两个线程同步辅助类。下面分别详细介绍这两个类,以及他们之间的异同点。CountDownLatch类CountDownLatch顾名思义:倒计数锁存器。没错,他就是一个计数器,并且是倒着计数的。他的应用场景如下:一个任务A,他需要等待其他的一些任转载 2017-02-18 22:58:22 · 569 阅读 · 0 评论 -
Java多线程系列-Future
概述Future主要用来表示线程异步执行的结果,他提供了检查异步执行的程序是否已经执行完毕、是否已经被取消,并且获取执行结果的方法。它是一个接口,接口的定义如下:12345678public interface FutureV> { boolean cancel(boolean mayInterruptIfRunning);转载 2017-02-18 22:54:12 · 885 阅读 · 0 评论 -
Java多线程系列-ThreadFactory
概述ThreadFactory翻译过来是线程工厂,顾名思义,就是用来创建线程的,它用到了工厂模式的思想。它通常和线程池一起使用,主要用来控制创建新线程时的一些行为,比如设置线程的优先级,名字等等。它是一个接口,接口中只有一个方法:123456789/** * Constructs a new {@code Thread}. Im转载 2017-02-18 21:54:21 · 1036 阅读 · 0 评论 -
Java多线程系列-ExecutorService
Executor接口概述该类提供一个提交任务的方法,提交的任务可以在提交程序本线程运行,也可以在不同的线程运行,也可以在一个线程池中的线程运行,全看如何使用。However, the {@code Executor} interface does not strictlyrequire that execution be asynchronous. In the sim转载 2017-02-18 21:40:36 · 626 阅读 · 0 评论 -
Java多线程系列-Executors
概述Executors类是JDK 1.5开始自带的一个非常强大的主要用于创建各类线程池的工具类。常用方法介绍newFixedThreadPoolnewFixedThreadPool方法有两种函数签名:12public static ExecutorService newFixedThreadPool(int nThreads)转载 2017-02-18 21:38:51 · 510 阅读 · 0 评论 -
Java多线程系列-BlockingQueue
前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个转载 2017-02-18 21:17:42 · 539 阅读 · 0 评论 -
Spring-知识点合集
1. Spring框架的作用轻量:Spring是轻量级的,基本的版本大小为2MB控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。面向切面的编程AOP:Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。容器:Spring包含并管理应用中对象的生命周期和配置MVC框架: Spring-MVC事务管理:Spring提供一个持续转载 2017-10-26 23:51:32 · 441 阅读 · 0 评论 -
Java多线程系列-线程池的优点和方法
new Thread的弊端如下:a. 每次new Thread新建对象性能差。b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。c. 缺乏更多功能,如定时执行、定期执行、线程中断。相比new Thread,Java提供的四种线程池的好处在于:a. 重用存在的线程,减少对象创建、消亡的开销,性能佳。b. 可有效控制最原创 2017-10-25 19:15:38 · 2507 阅读 · 1 评论 -
Java多线程系列-悲观锁和乐观锁实战
悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 使用场景举例:以MySQL InnoDB转载 2017-10-24 16:08:05 · 11688 阅读 · 0 评论 -
配置SSH免密码登陆
以用户hadoop为例展开介绍增加hadoop组和用户使用如下命令增加hadoop 组和hadoop 用户(密码),创建hadoop组件存放目录#groupadd -g 1000 hadoop#useradd -u 2000 -g hadoop hadoop#mkdir -p /app/hadoop#chown -R hadoop:hadoop /app/hadoop...转载 2019-01-16 00:37:05 · 737 阅读 · 0 评论 -
Java 死锁(DeadLock)实例分析和预防[base jdk8]
synchronized实现死锁/** * Created by Administrator on 2018/2/3. */public class SynchronizedDeadLockTest { static Object src1 = new Object(); static Object src2 = new Object(); public st原创 2018-02-03 11:49:46 · 749 阅读 · 0 评论 -
Future和FutureTask使用案例和源码剖析[base jdk8]
Futureimport java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;/** * Created by Administrator o原创 2018-02-03 00:21:40 · 654 阅读 · 0 评论 -
Thread.join()方法实现main()方法等待所有子线程执行完成[base jdk8]
代码实现/** * Created by Administrator on 2018/2/3. */public class JoinTest { public static void main(String[] args) { Thread t1 = new Thread(new MyRunnable(), "t1"); Thread t2 =原创 2018-02-03 10:30:14 · 1210 阅读 · 0 评论 -
进程、线程知识点总结和同步(消费者生产者,读者写者三类问题)、互斥、异步、并发、并行、死锁、活锁的总结
转自:http://www.cnblogs.com/kubixuesheng/p/4355786.html进程:是个动态的概念,指的是一个静态的程序对某个数据集的一次运行活动,而程序是静态的概念,是由代码和数据组成的程序块而已。进程5大特点:动态性,并发性,独立运行性,异步性,和结构化的特性。在多道程序环境下,程序不能独立运行,操作系统所有的特征都是基于进程而体现的,只有进程可转载 2017-12-10 21:53:55 · 834 阅读 · 0 评论 -
Java多线程系列-多线程合集2
转自:http://blog.youkuaiyun.com/u013256816/article/details/51325309本文主要整理博主遇到的Java多线程的相关知识点,适合速记,故命名为“小抄集”。本文没有特别重点,每一项针对一个多线程知识做一个概要性总结,也有一些会带一点例子,习题方便理解和记忆。27. ConcurrentHashMapConcurrentHashMap是线转载 2017-10-25 19:09:44 · 998 阅读 · 0 评论 -
Java多线程系列-多线程合集1
转自:http://blog.youkuaiyun.com/u013256816/article/details/51325246#t6本文主要整理博主遇到的Java多线程的相关知识点,适合速记,故命名为“小抄集”。本文没有特别重点,每一项针对一个多线程知识做一个概要性总结,也有一些会带一点例子,习题方便理解和记忆。1. interrupted与isInterrupted的区别interrupte转载 2017-10-25 17:51:32 · 740 阅读 · 0 评论 -
Java多线程系列-多线程下的Singleton模式
Singleton是老生常谈的一个设计模式,不过在之前学习的时候,我并没有将多线程的问题考量在内,所以在这篇里面加入多线程,细细聊来。首先,就写出一个最简单的singleton,在单线程模式下,该实现没有任何问题,这是真正安全的模式:?1234567891011public class Singleto原创 2017-10-25 17:30:55 · 1315 阅读 · 0 评论 -
Java多线程系列-join方法
Thread类的join方法用来使main线程进入阻塞状态,进而等待调用join方法的线程执行,join方法有如下三种形式?123public final void join(longmillis) throws InterruptedException public final void join(long mi转载 2017-10-25 17:18:34 · 759 阅读 · 0 评论 -
Java多线程系列-实现多线程的最基本两种方式
Java实现多线程的一种方式是实现Runnable接口,另一种则是继承Thread类。我们举例来说明二者的使用。方法1:?1234567public class CreateThreadTest implementsRunnable { publicvoid run() { S原创 2017-10-25 17:13:16 · 640 阅读 · 0 评论 -
JAVA之编码----LINUX环境下的JAVA编码与日志
昨天DEBGU了一个JAVA程序,发现在WINDOWS下可以更新数据,但是在LINUX下更新不成功,经过DEBUG发现,更新时需要提交一个中文值到后台,采用N多方式,不成功,今特备注,防止天下文章一大抄:1、首先需要确定操作系统默认的编码,可以采用以下方式确认 System.out.println("Default Charset=" + Charset.defaultC转载 2016-11-28 15:41:01 · 2370 阅读 · 0 评论 -
linux shell 实现 四则运算(整数及浮点) 简单方法
转自:点击打开链接在刚刚学习写shell 批处理时候,进行逻辑运算中,少不了需要进行基础的:四则运算,这里说说在linux shell 里面简单的实现方法。 1.简单方法[chengmo@centos5 ~]$ b=$((5*5+5-3/2)) [chengmo@centos5 ~]$ echo $b29 在linux shell中,我们可以使用 $(())转载 2016-11-27 22:19:48 · 1042 阅读 · 0 评论 -
Select模型与ioctlsocket的使用方法
Select模型与ioctlsocket的使用方法 2011-03-29 11:38:26| 分类:软件开发C++ | 标签:ioctlsocket socket 阻塞 select |字号大中小 订阅 int iMode = 1; //0:阻塞 ioctlsocket(socketc,FIONBIO, (u_long FAR*) &i转载 2015-04-21 11:30:20 · 1190 阅读 · 0 评论 -
描述符与端口关系
基本TCP套接口编程一本文出自:http://sunsland.top263.net 作者: (2001-10-22 12:00:00)概述socket() --得到文件描述符!bind() --我们在哪个端口?connect() --Hello!listen() --有人给我打电话吗?accept() --"Thank you原创 2015-04-23 21:55:42 · 2106 阅读 · 0 评论 -
网站加速--服务器编写篇(上)
http://blog.sina.com.cn/s/blog_466c66400100bi2n.html~type=v5_one&label=rela_prevarticle--提升性能的同时为你节约10倍以上成本From: http://blog.sina.com.cn/iyangjian一,如何节约CPU二,怎样使用内存三,减少磁盘I/O四,优化你的网卡五,调整转载 2015-04-19 18:27:09 · 921 阅读 · 0 评论 -
epoll和select区别
联系区别问题的引出,当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一个描述符上面,另外的描述符虽然有数据但是不能读出来,这样实时性不能满足要求,大概的解决方案有以下几种:1.使用多进程或者多线程,但是这种方法会造成程序的复杂,而且对与进程与线程的创建维护也需要很多的开销。(Apache服务器是用的子进程的方式,优点可以隔离用户)2.用一个进程,但是使用非原创 2015-04-19 16:28:57 · 1097 阅读 · 0 评论 -
linux下的C\C++多进程多线程编程简易例子
多进程编程 #include #include #include int main(){ pid_t child_pid; /* 创建一个子进程 */ child_pid = fork(); if(child_pid == 0) { printf("child pid\n"); exit(0); } else { p转载 2015-04-19 17:01:16 · 8828 阅读 · 1 评论 -
Linux Epoll介绍和程序实例
EpollEpoll可是当前在Linux下开发大规模并发网络程序的热门人选,Epoll在Linux2.6内核中正式引入,和select相似,其实都I/O多路复用技术而已,并没有什么神秘的。其实在Linux下设计并发网络程序,向来不缺少方法,比如典型的Apache模型(Process Per Connection,简称PPC),TPC(Thread PerConnection)模型,转载 2015-04-19 15:52:40 · 690 阅读 · 0 评论 -
INADDR_ANY解释
INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。 一般来说,在各个系统中均定义成为0值。 例如MontiVista Linux中在/usr/include/netinet/in.h定义为: /* Address to accept any incoming messages. */ #define I转载 2015-04-18 15:34:25 · 940 阅读 · 0 评论 -
socket网络编程的相关内容
什么是套接字? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。Internet 套接字的类型套接字一般分为三种类型:①流式套接字(SOCK--STREAM):该类套接字提原创 2015-04-18 20:59:20 · 1097 阅读 · 0 评论 -
TCP三次握手/四次挥手解析
转载自:http://blog.chinaunix.net/u1/40133/showart_1764444.html连接进程是通过一系列状态表示的,这些状态有:LISTEN,SYN-SENT,SYN-RECEIVED,ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CLOSE-WAIT,CLOSING,LAST-ACK,TIME-WAIT和CLOSED。转载 2015-04-18 15:12:13 · 654 阅读 · 0 评论 -
ioctlsocket()函数和WSAAsyncSelect()函数的用法及区别
以下内容为程序代码:WSAAsyncSelect(sock, 0, 0, 0);以下内容为程序代码:long lret;lret = 1L;ioctlsocket(sock, FIONBIO, (u_long FAR *) &lret);以上这两种用法对于设置非阻塞socket有什么不同效果? 1.WSAAsyncSelect转载 2015-04-18 15:26:31 · 1154 阅读 · 0 评论 -
TCP/UDP和HTTP简单解释
先来一个讲TCP、UDP和HTTP关系的1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。转载 2015-03-06 11:20:55 · 954 阅读 · 0 评论 -
Socket原理
一、Socket简介Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。几个定义:(1)IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。(2)端口号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,原创 2015-04-21 11:34:24 · 790 阅读 · 0 评论 -
socket选项总结(setsocketopt)
功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:转载 2015-04-21 11:27:15 · 1922 阅读 · 0 评论