学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
如果应用在响应用户的操作的时候,在UI线程中执行了大量的耗时操作,比方说网络访问或数据库查询。这样做的后果势必会阻塞整个UI。一旦UI线程被阻塞,将无法分派任何事件,包括绘图事件。
如果UI线程被阻塞超过一定时间(目前 5 秒钟),就会出现我们常说的ANR。
1.3 如何在子线程中访问UI资源
既然ANR是由于在UI线程中执行大量耗时的操作引起的,那么我们在主线程中新建一个worker线程问题不就解决了么?事实上,这种方式的确能够解决一些问题,但是对于UI来说就不是那么灵光了,因为Android UI 线程并不是线程安全的。
1.3.1 线程安全问题
当程序中存在多个线程,如果多个线程都要访问相同的公共的数据或者资源,就会产生线程安全为题。如果不解决线程安全问题,公共数据或者资源就会变得紊乱,影响正常的业务逻辑开发。
1.3.2 线程安全的解决方法
要解决多线程访问共享资源的安全问题,可以通过加锁机制进行解决。常见的加锁机制有:互斥锁,读写锁等方式。加锁后解决了线程安全问题,但是因为涉及到上锁,释放锁的操作,消耗资源,因此加锁会降低程序的运行效率。
综上,当遇到多线程执行时:不加锁,会存在线程安全问题;加了所,解决线程安全问题,影响效率。
1.3.3 Android系统的方案
因为线程安全性能较差,线程不安全性能较好,Android中为了提高UI的绘制效率,保证渲染效果,选择了线程不安全。因为线程不安全带来的问题就是“不安全”,所以Android设计主线程为单线程模型,只能在UI线程中操作UI界面。
二、UI界面刷新方法和注意事项
在Android开发过程中需要注意两点:
- 1.不要阻塞主线程
- 2.不要在其他线程调用UI操作方法
如果子线程需要来修改用户界面,就必须先通知主线程,主线程来帮助完成 。
针对不能再线程中更新UI的问题,Android提供了三种在线程中更新UI的方式来解决这一问题:
- Activity.runOnUiThread(Runnable):activity中存在的方法。
- View.post(Runnable):view基类存在的方法。
- View.postDelayed(Runnable, long):view基类包含的方法,与post相似,多一个long参数。
一、网安学习成长路线图
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网安视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
三、精品网安学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!