2021-05-24

24 篇文章 0 订阅
12 篇文章 0 订阅

今天工作:
查看代码:
上传代码命令: scp ./bin/aods root@172.16.8.167:/usr/sam/setup/
查看代码日志:

什么是线程:
	线程是操作系统能够进行运算调度的最小单位,被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务
线程的 6 个状态

NEW:新建状态。在创建完 Thread ,还没执行 start() 之前,线程的状态一直是 NEW。可以说这个时候还没有真正的一个线程映射着,只是一个对象。

RUNNABLE:运行状态。线程对象调用 start() 之后,就进入 RUNNABLE 状态,该状态说明在 JVM 中有一个真实的线程存在。

BLOCKED:阻塞状态。线程在等待锁的释放,也就是等待获取 monitor 锁。

WAITING:等待状态。线程在这个状态的时候,不会被分配 CPU,而且需要被显示地唤醒,否则会一直等待下去。

TIMED_WAITING:超时等待状态。这个状态的线程也一样不会被分配 CPU,但是它不会无限等待下去,有时间限制,时间一到就停止等待。

TERMINATED:终止状态。线程执行完成结束,但不代表这个对象已经没有了,对象可能还是存在的,只是线程不存在了。

线程既然有这么多个状态,那肯定就有状态机,也就是在什么情况下 A 状态会变成 B 状态。下面就来简单描述一下。

结合下图,我们 new 出线程类的时候,就是 NEW 状态,调用 start() 方法,就进入了 RUNNABLE 状态,这时如果触发等待,则进入了 WAITING 状态,如果触发超时等待,则进入 TIMED_WAITING 状态,当访问需要同步的资源时,则只有一个线程能访问,其他线程就进入 BLOCKED 状态,当线程执行完后,进入 TERMINATED 状态。
线程控制:
1、创建线程
#include <pthread.h>

int pthread_create(pthread_t *restrict thread, const pthread_attr_t * restrict attr, void *(*start_routine)(void *), void * restrict arg);
2、终止线程

只终止线程而不终止进程的方法有三种

1、从线程函数return。主线程return相当于调用了exit

2、一个线程可以调用pthread_cancel终止同一进程中的另一线程

3、线程可以调用pthread_exit终止自己

设置桥接:
DEVICE=macbr0
TYPE=Bridge
BOOTPROTO=static
IPADDR=172.16.8.167
GATEWAY=172.16.8.1
NETMASK=255.255.255.0
ONBOOT=yes

svn常用命令:
1、检出
svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码
svn co svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码
svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
注:如果不带–password 参数传输密码的话,会提示输入密码,建议不要用明文的–password 选项。 其中 username 与 password前是两个短线,不是一个。
SVN中检出 和 导出 的区别:
检出得到的文件夹中,是受SVN客户端控制的,对其进行文件或文件夹的增删改操作都会被SVN客户端识别出来,对其可以进行update、commit操作。
其中含有.svn隐藏文件夹,这个隐藏文件夹中含有SVN客户端的控制信息。
导出得到的文件夹,是不含.svn隐藏文件夹的,因此不受SVN客户端控制,不能继续进行update、commit操作。
2、导出(导出一个干净的不带.svn文件夹的目录树)
svn export [-r 版本号] http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
svn export [-r 版本号] svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
svn export 本地检出的(即带有.svn文件夹的)目录全路径 要导出的本地目录全路径
3、添加新文件
svn add 文件名
注:告诉SVN服务器要添加文件了,还要用svn commint -m真实的上传上去!
4、提交
svn commit -m “提交备注信息文本“ [-N] [–no-unlock] 文件名
svn ci -m “提交备注信息文本“ [-N] [–no-unlock] 文件名
必须带上-m参数,参数可以为空,但是必须写上-m
5、更新文件
svn update
svn update -r 修正版本 文件名
svn update 文件名
提交的时候提示过期冲突,需要先 update 修改文件,然后清除svn resolved,最后再提交commit。
update与 commit的区别:update是将主机代码更新到本地;commit是将本地上传到主机;
6、删除文件
svn delete svn://路径(目录或文件的全路径) -m “删除备注信息文本”
7、加锁/解锁
svn lock -m “加锁备注信息文本“ [–force] 文件名
svn unlock 文件名
8、比较差异
svn diff 文件名
svn diff -r 修正版本号m:修正版本号n 文件名
例子:

svn diff test.php<- 将修改的文件与基础版本比较
svn diff -r 200:201 test.php<- 对 修正版本号200 和 修正版本号201 比较差异
9、查看文件或者目录状态
svn st 目录路径/名
svn status 目录路径/名<- 目录下的文件和子目录的状态,正常状态不显示
【?:不在svn的控制中; M:内容被修改;C:发生冲突; A:预定加入到版本库;K:被锁定】
svn -v 目录路径/名
svn status -v 目录路径/名<- 显示文件和子目录状态
【第一列保持相同,第二列显示工作版本号, 第三和第四列显示最后一次修改的版本号和修改人】 注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的, 原因是svn在本地的.svn中保留了本地版本的原始拷贝。
10、查看日志
svn log 文件名
11、查看文件详细信息
svn info 文件名
13、查看版本库下的文件和目录列表
svn list svn://路径(目录或文件的全路径)
svn ls svn://路径(目录或文件的全路径)
14、创建纳入版本控制下的新目录
svn mkdir 目录名
svn mkdir -m “新增目录备注文本” http://目录全路径
注:添加完子目录后,一定要回到根目录更新一下,不然在该目录下提交文件会提示“提交失败
15、恢复本地修改
svn revert [–recursive] 文件名
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录。
16、把工作拷贝更新到别的URL
svn switch http://目录全路径 本地目录全路径
17、解决冲突
svn resolved [本地目录全路径]
当你解决了foo.c的冲突,并且准备提交,运行svn resolved让你的工作拷贝知道你已经完成了所有事情。 你可以仅仅删除冲突的文件并且提交,但是svn resolved除了删除冲突文件,还修正了一些记录在工作拷贝管理区域的记录数据,所以我们推荐你使用这个命令。

	**数据结构知识点总结:**
	
	**操作系统知识点总结**

在这里插入图片描述

	搭建开发管理服务
	禅道 项目管理软件

  20个人用

 oss 2k 云盘 1w 下载 500G 2200
 数据库阿里产品 双机热备
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值