![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 60
雨痕消失
(*•̀ᴗ•́*)و ̑̑
展开
-
模拟handler写的一个demo
Looper 类 模拟了loop方法,quit 方法用于退出模拟的死循环package com.yuixu.test2import android.util.Logclass MyLooper { var mThread:Thread companion object{ var threadLocal =ThreadLocal<MyLooper>() fun myLooper():MyLooper{ re原创 2021-06-27 18:48:57 · 184 阅读 · 0 评论 -
Handler 的loop()方法详解
上篇说了loop()方法并不是handler用来取出消息的,那么这篇分析一下loop()的源码看下它到底是干嘛的。个人理解大概是用来等待接收消息的,他会使线程进入休眠状态,等待被唤醒。这里关键的地方就是 MessageQueue的next方法。其中调用了nativePollOnce ,这个方法可以参看上篇提到的其他作者的native层源码分析(具体意思这个是Linux中的一种线程通讯机制,这个方法会让线程进入休眠状态)还有Looper中的Observer。looper中的Observer 是个抽原创 2021-06-27 15:54:17 · 908 阅读 · 0 评论 -
从源码详细分析Handler 原理
终于对handler 下手了????先来看看源代码,要看Handler源码还是要从构造方法入手。 @Deprecated public Handler(@Nullable Callback callback) { this(callback, false); } /** * Use the provided {@link Looper} instead of the default one. * * @param loope原创 2021-06-27 12:32:33 · 279 阅读 · 2 评论 -
关于socket 两台Android设备上的通信
好久没有看过socket的代码,今天想实现一个两台手机之间互传的功能,本来想用蓝牙,但是想着,蓝牙有距离限制,如果直接用网络通讯。这样就可以远程发送了啊。于是我想起了socket。经过一上午的时间写了一个demo。然而仅仅实现了局域网的链接。从网上查资料,看了很多关于内网穿透的文章。似乎虽然能够查询到本机的外网地址,但是其他设备并不能直接通过这个外网的ip地址访问到这个设备。其中涉及到了一个名词叫做内网穿透。由于我不是做服务器的所以也没太看懂。大概的意思就是外网并不能直接访问内网,需要经过一些端原创 2021-03-20 18:59:41 · 1236 阅读 · 2 评论 -
关于java多线程死锁的问题
最近有被问到死锁的问题,目前为止我的项目还没有遇到过死锁的问题,但是对这个问题我挺感兴趣的,所以试着写了一下解决的方案。不知道实际应用中是怎么解决的呢?有什么完整的方案,希望可以在评论区告诉我。首先加了同步锁的方法如果抛出异常,锁是会自动被释放的。所以我在下面的测试代码中,使用Thread.sleep来让这个test方法一直占用锁。解释一下下面的类的意义, test的方法是加了同步锁的方法,是我们要执行的程序。ctime方法是用来控制每个同步进程的总体时间不要超过5000毫秒,需要单独开启一个线原创 2021-03-14 16:22:12 · 365 阅读 · 2 评论 -
一个幂运算
今天碰到一个面试题,要求呢是求 A的n次方。试着写了一下。开始只是简单的for循环相乘,后来发现java中最大的存储单位也存不下很大的数,所以后来想到了把乘法转为加法运算,并且利用每一位单独相加,来求最后的结果。思路就是,例如 2的3次方。 就是 2* 2*2 用加法算就是 2+2 得到这个结果4,以后 在 4+4如果说是 3的4次方 那就是 3*3*3*3 那就是 3+3+3得到结...原创 2019-12-23 17:35:26 · 1018 阅读 · 0 评论