1.gst ---git status
2..class .idea等等很多文件是不应该上传到Github的。
所以要配置.gitignore
3.git remote show --查看当前所有的源
源是你要push代码的代码源,可以是别人的。
git push -u origin master
-u是有记忆的,帮我们记下之前的源
然后进行git push 会直接push到-u之前记忆的源
git remote add xxx(https 源)
4.第一步先克隆代码仓库
第二步 在里面建立文件夹
进行自己文件的push
5. git checkout - b apollo ---创建自己的分支并切换
在自己的分支上进行 :创建文件夹/创建文件/git gst ->git add xxx.xxx ->git gst ->
为了保证分支上的文件和主分支保持一致,要先进行pull操作
push 的话要先push到自己的分支上:git push origin apollo (is not master)
把远程代码下载到本地 git fetch ==git pull
6.delete branch 只能通过远端的按钮实现 ;
删除分支是本地实现不了的。
7. 设置了输入法转换快捷键:comand + 空格
8.pr -- request
9.git reset
10.git add xx,java之后,文件从本地到了暂存区
git checkout xx.java 之后,上一步的add失效, stage 里的文件被删除 ,相当于没有add
11.git checkout hello --切换分支到hello
git reset HEAD~2 挪指针,往前挪两个位置,默认的参数是 - mixed
12.checkout 有两个级别:commit级别( 切换分支,挪指针) 与 文件级别(删自己的本地文件)
核心在于挪指针。
13.revert --保留原有的提交,复制想要跳转到的提交,在当前提交后面创建新的提交复制想要的提交。
内容相同的提交,但是却不会产生冲突。
reset revert 是有区别的 :是否能留有提交记录
在线练习:https://try.github.io
学习MarkDown语法
1.并发(concurrency):在一段时间范围内交替执行多个程序
把问题拆分成独立单元,顺序或者无序拿到cpu去执行
是一个系统属性。
并行(parallelism):强调发生在一个时间点上,较并发来说更为复杂,一般不在我们的研究范围。
是一个计算模型。
并发在单核处理器上实现(例如多线程),而并行依赖于多核。
并发是个问题,多线程是个解决并发的实现方式。
2.进程 --占用资源的最小单位
线程 --不单独占用资源,用于执行任务
--线程分为:用户线程和守护线程
--线程是操作系统级别的概念,属于底层接口。
--线程的执行是由操作系统完成而非开发者,jvm不能管理线程的执行,仅仅是去调用接口。
--线程间通信要比进程间更易实现,而且线程间的切换消耗较少。
3.创建线程的两种方式:
--实现Runnable接口
--继承 Thread类
线程的启动全靠.run() / .start(),而这两种方法都在Thread类下。
4.Thread.sleep() --用来休眠(暂停)当前正在运行的线程。
暂停时间以毫秒为单位
休眠方法:通知线程调度器将当前线程改为等待状态,并设置一个结束时间。暂停结束后,线程状态会改为就绪状态,等待操 作系统分配cpu资源。
5.Thead.join() --用来暂停当前线程直到指定线程结束。
--调用该方法的线程会被暂停执行,放入阻塞队列。????好像不对
不带参数,join()就是让线程一直等,直到此线程结束;
带参数,则说明最多等线程多少秒,之后强迫执行下一线程。
6.线程安全 - -由于共享资源管理不当而导致的数据不一致问题。
数据不一致的原因主要是因为:更新字段不是原子操作。
7.线程:普通线程/守护线程
主线程一结束,守护线程就g掉了
普通线程不结束,主线程是不会结束的