李志宽 李志宽
3年前
1分钟教你学会Metasploit 安装与部署
前言Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合报告提出了他们的发现。(来自百度百科)总之是一款非常优秀的开源渗透测试框架。安装Metasploit本文只讨论在Linux系统下的安装,包括Ubuntu、Centos、Deepin等,读者可以直接安装Kali操作系统,上面
灯灯灯灯 灯灯灯灯
4年前
Java并发之Semaphore源码解析
Semaphore前情提要在学习本章前,需要先了解ReentrantLock源码解析,ReentrantLock源码解析里介绍的方法有很多是本章的铺垫。下面,我们进入本章正题Semaphore。从概念上来讲,信号量(Semaphore)会维护一组许可证用于限制线程对资源的访问,当我们有一资源允许线程并发访问,但我们希望能限制访问量,就可以用信号量对访问线程
Wesley13 Wesley13
3年前
java NIO原理及通信模型
JavaNIO是在jdk1.4开始使用的,它既可以说成“新IO”,也可以说成非阻塞式I/O。下面是javaNIO的工作原理:由一个专门的线程来处理所有的IO事件,并负责分发。事件驱动机制:事件到的时候触发,而不是同步的去监视事件。线程通讯:线程之间通过wait,notify等方式通讯。保证每次上下文切换
腾讯java社招面试流程,附大厂真题面经
拼多多一面首先自我介绍参加过哪些项目并发编程三要素?实现可见性的方法有哪些?多线程的价值?创建线程的三种方式的对比?画出线程的状态流转图常用的并发工具类有哪些?CyclicBarrier和CountDownLatch的区别CAS的问题:1、CAS容易造成ABA问题2、不能保证代码块的原子性3、CAS造成CPU利用率增加ReadWriteL
Stella981 Stella981
3年前
Node.js 多进程处理CPU密集任务
Node.js单线程与多进程大家都知道Node.js性能很高,是以异步事件驱动、非阻塞I/O而被广泛使用。但缺点也很明显,由于Node.js是单线程程序,如果长时间运算,会导致CPU不能及时释放,所以并不适合CPU密集型应用。当然,也不是没有办法解决这个问题。虽然Node.js不支持多线程,但
Wesley13 Wesley13
3年前
Java并发编程:Lock
一.synchronized的缺陷synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢?  在上面一篇文章中,我们了解到如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁
Wesley13 Wesley13
3年前
Java总结篇系列:Java多线程(一)
多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的。一.线程的生命周期及五种基本状态关于Java中线程的生命周期,首先看一下下面这张较为经典的图:!(https://oscimg.oschina.net/oscnet/6430f76219ba08fbe0a9d18ffe4e947387b.jpg)上图中基本上囊括了J
Wesley13 Wesley13
3年前
Java并发编程原理与实战十八:读写锁
ReadWriteLock也是一个接口,提供了readLock和writeLock两种锁的操作机制,一个资源可以被多个线程同时读,或者被一个线程写,但是不能同时存在读和写线程。基本规则:读读不互斥读写互斥写写互斥问题:既然读读不互斥,为何还要加读锁答:如果只是读,是不需要加锁的,加锁本身就有性能上的损耗如果读可以不是最新数据
Stella981 Stella981
3年前
JVM学习第一天
程序计数器当前线程所执行的字节码的行号指示器每个线程都有自己私有的计数器native方法,计数器值为空该内存区域没有规定任何的OutOfMemoryError情况虚拟机栈Java方法执行的内存模型,用于存储局部变量标、操作数栈、动态链接、方法出口等信息虚拟机栈也是线程私有局部变量表所需的内存控件在
nitesy nitesy
1年前
C, Cpp, Cpp11 三种方式实现线程池(源码)
使用C,C,C11三种实现线程池的方式