java并发编程3-线程运行原理
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
栈 每个线程都有自己的栈,
线程上下文切换
CPU时间片用完
gc
有更高优先级的线程要运行
线程自己sleep,yield,wait,join,park,synchronized,lock
线程中常用的方法
start() 线程进入就绪状态
run() 线程要执行的方法
join() 等待某个线程结束
join(long) 最多等待n毫秒
getId() 线程的长整型id
getName() 线程名
setName()
getPriority() 优先级
setPriority()
getState() 线程状态
isInterrupted() 是否被打断
isAlive() 是否存活
interrupt() 打断线程
interrupted() 判断是否被打断,会清楚标记
currentThread() 获得当前正在执行的线程
sleep() 睡眠
yield() 提示调度器让 ...
java并发编程2-创建和运行线程
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
使用Tread创建线程123456789101112131415161718192021package com.wsx.test;import org.junit.Test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class ThreadTest { @Test public void test1() { final Logger logger = LoggerFactory.getLogger(ThreadTest.class); Thread thread = new Thread() { @Override public void run() { lo ...
Java基础
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
Automic是一个原子类型包,其中包含了AtomicBoolean,AtomicInteger,AtomicLong等, 原子操作说是这样说的,然而并不是所有的物理机器都支持原子指令,所以不能保证不被阻塞,一般而言,采用的CAS+volatile+native的方法,避免synchronized的使用,如果不支持CAS那就上自旋锁了
接口
log4jMaven依赖12345<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency>
log4j.properties123456789101112131415161718 ...
java并发编程1-进程与线程
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
Where from 快来点我
进程 一个活动的程序,是程序的实例,大部分程序可以运行多个实例,有的程序只可以运行一个实例
线程 一个进程可以有多个线程,线程是最小的调度单位,进程是资源分配的最小单位,
进程与线程 进程互相独立,线程是进程的子集 进程拥有共享的资源,供其内部的线程共享 进程通信较为复杂,同一台计算机之间的进程通信叫做IPC,不同的计算机之间需要通过网络协议 线程的通信相对简单,他们共享进程的内存, 线程更加轻量,他们上下文切换的成本更低
并行与并发 单核CPU的线程都是串行,这就叫并发concurrent 多核CPU能够达到并行,一些代码同时执行,但是更多情况下,我们的计算机是并发+并行 并发concurrent是同一时间应对dealing with多件事情的能力,并行parallel是同一时间动手做doing多件事情的能力
同步和异步 比如我们有个视频转换转换格式非常耗时 ...
spring12-事务
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
spring支持的事务 似乎都是关于数据库的,可能也是我的水平问题,不知道其他的东西 大概需要实现两个,一个commit,另一个是rollback 事务是基于AOP实现的
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x ...
spring11-Jdbctemplate
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
JdbcTemplate测试写法12345678910ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean.xml");JdbcTemplate jdbcTemplate = applicationContext.getBean("jdbcTemplate",JdbcTemplate.class);// 保存jt.update("insert into account(name,money)values(?,?)","eee",3333f);// 更新jt.update("update account set name=?,money=? where id=?","test&q ...
mysql游标
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
游标允许我们遍历结果集 不想多说,我只是感觉好复杂
12345678910111213141516171819202122create table test(id int);delimiter // #定义标识符为双斜杠drop procedure if exists test; #如果存在test存储过程则删除create procedure test() #创建无参存储过程,名称为testbegin declare i int; #申明变量 declare id_ int; declare done int; declare cur cursor for select id from test; declare continue han ...
网易笔试
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
第一题输入一个n,表示n个点的完全图,输入m表示后续有m个操作,输入s表示你站在s点这个位置接下来m行,每行两个数字x,y 如果x=0 表示与y相连的所有边断开 否则 表示边x-y断开 你需要输出一个数x,表示这m个操作的前x个操作可以让s点与其他所有点断开连接
12345678910111213set<int>se;for(int i=1;i<=m;i++){ cin>>x>>y; if(x==0) { if(y==s) return i; else se.insert(y); }else { if(x==s) se.inesrt(y); if(y==s) se.insert(x); } if(se.size()==n) return i;}ret ...
linux指令学习
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
MAN 操作手册学linux,必须知道如何使用man,首先是安装man,或者在这里逛逛
1yum -y install man-pages
SCP上传本地文件到服务器1scp -P [ssh端口] /path/filename username@serverhost:/path
下载HTTP文件下载东西可以使用curl指令,如
1curl baidu.com -O -L
也可以使用wget指令,如
1wget baidu.com
Linux运行级别 linux一共有7个级别,分别为0关机、1单用户、2无网多用户、3有网多用户,4保留,5图形界面,6重启。在文件/etc/inittab中指定了级别。
查看运行级别 查看文件/etc/inittab
修改运行级别1init 3
如何找回root密码 进入单用户模式,然后修改密码,因为进 ...
redis
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
nosql 随时大规模高并发的出现,传统关系型数据库已经碰到了很大的问题,他难以提供更快的数据访问速度了,这导致数据库成为了瓶颈。人们提出not only sql的一种理念,就是我们不能仅仅依靠关系型数据库。
非关系型数据库 指的是没有关系的数据库,即不是二纬表,而是KV对。
redis redis 就是其中的一个非关系型数据库,他是单线程,将数据储存在内存中的数据库,他支持丰富的数据类型,包括string,list,set,hash,zset
redis持久化 第一种是rdb方案,他将内存的数据定期储存到磁盘中,由于数据的空间问题,一般15分钟一次,第二种是aof方案,他将读取的数据定期增加到磁盘中,由于我们只是添加,一般1s一次。rdb本质为整体储存,aof为懒惰式储存,他储存的是操作,而不是数据库。
redis事务 redis半支持事务,语法错误回滚,但运行错误不会。
redis主从复 ...