Cyber

C/C++ Python hadoop Linux

HTTP详解

URL 的基本概念 我们先来看看浏览网页的基本过程,如果在浏览器地址栏输网址:http://www.baidu.com会发生什么? 1. 浏览器通过 DNS 服务器 查找域名对应的 IP 地址。 2. 向IP地址对应的Web服务器发送请求。 3. Web服务器响应请求,发回 HTML文本页面。 4...

2019-04-22 18:19:31

阅读数 82

评论数 0

HadoopMapReduce寻找共同好友

假设有所有用户的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友关系是单向的),如果两个用户之间存在共同好友,需要找出他们之间的共同好友。样例文本如下:A:B,C,D,F,E,O B:A,C,E,K C:F,A,D,I D:A,E,F,L E:B,C,D,M,L F:A,B,...

2018-07-04 22:30:27

阅读数 139

评论数 0

HbaseAPI编程示例

package com.HbaseJDBC; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.*; import org.apache.hadoop.hbase.client.*; import...

2018-07-02 10:30:42

阅读数 132

评论数 0

线程管理(同步与互斥)

互斥(锁的机制)由于互斥锁,自旋锁,读写锁作用与函数名都类似,所以这里我们只讨论互斥锁。互斥锁是用一种简单的加锁方法来控制对共享资源的原子操作。这个互斥锁只有两种状态,也就是上锁和解锁,可以把互斥锁看作某种意义上的全局变量。在同一时刻只能有一个线程掌握某个互斥锁,拥有上锁状态的线程能够对共享资源进...

2018-06-05 14:54:21

阅读数 65

评论数 0

线程管理(基本概念)

进程与线程程序中的一个执行路线就叫做线程(thread)。线程是“一个进程内部的控制序列”,一个进程中最少有一个线程。进程是资源竞争的基本单位,而线程是程序执行的基本单位,一个进程中的多个线程共享进程数据,但也有自己的数据。进程中线程的共享数据与私有数据...

2018-06-04 19:16:58

阅读数 546

评论数 0

IPC进程间通信(信号量)

基本概念信号量是一个计数器,用于为多个进程提供对共享数据对象的访问。信号量和P、V原语操作是由Dijkstra(迪杰斯特拉)所提出的。执行P操作时,将该进程状态设置为等待状态,并把该进程的PCB插入相应的等待队列s.queue末尾;执行V操作时,唤醒相应等待队列s.queue中等待的一个进程 改变...

2018-05-31 09:58:55

阅读数 94

评论数 0

IPC进程间通信(共享内存)

基本概念共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。 与消息队列管道的物理区别用管道或者消息队列传递数据,内核为每个IPC对象维护一个数据结构用共享内存传递数据共享内存函数...

2018-05-30 17:05:15

阅读数 238

评论数 0

IPC进程间通信(管道)

基本概念管道是Unix中最古老的进程间通信的形式,我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”。其本质是内核中固定大小的缓冲区。管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道。匿名管道pipe#include <unistd.h&a...

2018-05-30 16:21:05

阅读数 136

评论数 0

IPC进程间通信(消息队列)

基本概念消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法。每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值。消息队列与管道同样有缺陷,就是每个消息的最大长度是有上限的(MSGMAX),每个消息队列的总的字节数是有上限的(MSGMNB),系统上消息队列的总数也有一...

2018-05-29 19:13:00

阅读数 648

评论数 0

IPC进程间通信(概念简介)

进程间通信发展Linux下的进程通信手段基本上是从UNIX平台上的进程通信手段继承而来的。而对UNIX发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间的通信方面的侧重点有所不同。前者是对UNIX早期的进程间通信手段进行...

2018-05-28 18:32:26

阅读数 53

评论数 0

Socket套接字编程(I/O复用 select)

select函数/* According to POSIX.1-2001 */ #include <sys/select.h> /* According to earlier standards */ #include <sys/t...

2018-05-23 19:49:32

阅读数 229

评论数 0

Socket套接字编程(TCP有限状态机 粘包)

三次握手四次断开四次断开特殊情况(同时关闭)有限状态转换

2018-05-23 14:17:57

阅读数 193

评论数 0

Socket套接字编程(I/O模型)

阻塞I/O当上层应用调用recv系统调用时,如果对方没有发送数据(缓冲区没有数据),上层应用将被Linux内核阻塞(默认行为)。当对方发送了数据,linux内核套接字缓冲区有数据后,内核会把数据copy给用户空间。然后上层应用解除阻塞,执行下一步操作。非阻塞I/O上层应用程序将套接字设置成非阻塞模...

2018-05-22 16:34:42

阅读数 405

评论数 0

Socket套接字编程(TCP编程异常处理)

在运行TCP并发服务器端代码时发现客户端退出时服务器端子进程产生了僵尸进程服务器端避免僵尸进程的方法通过忽略SIGCHLD信号,解决僵尸进程signal(SIGCHLD, SIG_IGN)。通过wait方法,解决僵尸进程signal(SIGCHLD, handle_sigchld);wait(NU...

2018-05-21 20:44:27

阅读数 361

评论数 0

Socket套接字编程(TCP并发服务器模型)

并发编程典型框架服务器阻塞于accept函数调用,当客户端申请连接请求时客户端与服务器的状态从accept函数返回后,新的连接被内核接受,创建新的connfd套接字通过fork父进程可以创建子进程,让其代替自己完成读写数据操作此时listenfd与connfd被父子进程所共享,接下来父进程关闭连接...

2018-05-20 20:06:50

阅读数 539

评论数 0

Socket套接字编程(TCP基本编程)

Socket函数#include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol);创建...

2018-05-20 17:33:05

阅读数 538

评论数 0

Socket套接字编程(基本概念介绍)

关于Socketsocket是用户进程与内核网络协议栈的编程接口。可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信。IPv4套接口地址结构struct sockaddr_in { sa_family_t sin_family; /* address family: AF_INE...

2018-05-20 15:05:37

阅读数 141

评论数 0

信号(高级用法 sigaction sigqueue)

sigaction信号处理函数#include <signal.h> int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); struct sig...

2018-05-17 13:39:19

阅读数 130

评论数 0

信号(阻塞未达 信号集)

信号的阻塞未达信号在操作系统内核的传递过程中,执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态,称为信号未决(Pending)。进程可以选择阻塞(Block)某个信号。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作。(注:阻塞和忽略是...

2018-05-17 11:48:30

阅读数 73

评论数 0

信号(分类 发送)

信号分类(不可靠信号/可靠信号)linux信号机制基本上是从unix系统中继承过来的。早期unix系统中的信号机制比较简单和原始,后来在实践中暴露出一些问题,它的主要问题是:进程每次处理信号后,就将对信号的响应设置为默认动作。在某些情况下,将导致对信号的错误处理;因此,用户如果不希望这样的操作,那...

2018-05-16 22:47:15

阅读数 77

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭