草庐IT

single-threaded

全部标签

android - 如何确定性地使用 std::this_thread::yield() ?

在开发基于VoIP的应用程序时,我们有一个通用的多线程C++11模块。它在iOS、MacOS中运行良好,但在Android中发现线程调度困难。可选的设计说明(仅在感兴趣时)我有几个线程与消息队列一起运行。Master(将数据写入SSL_Read队列中接收的套接字)SSL_Read(从SSL读取数据并更新其队列)SSL_Write(将直接从Socket线程接收的数据写入SSL)每个套接字线程(从套接字读取数据并发送到SSL_Write队列)1-2是相关的,3-4是相关的。我观察到在许多调用期间,只有2个线程正在运行,而其他2个线程没有运行时间。由于观察到1路语音路径。问题我怀疑这是一个A

android - RxJava2 如何将 Single 链接到 Completable,以便在 Completable 完成时订阅它

我如何将Single链接到Completable,以便在Completable完成时订阅它?repository.downloadUser()是Single。根据调试,似乎此方法中的Single被调用但从未订阅(即downloadUser()方法被调用但它创建的Single中没有代码被调用)。问题是,如何使用原始订阅者在链中订阅repository.downloadUser()Single?我错过了什么或做错了什么?或者这是不可能的?funlogin(username:String,password:String):Completable{returnrepository.login(

android - RxJava Single.toCompletable() 似乎以某种方式打破了 Single

注意:事实证明,toCompletable()并非错误,而是调用代码。调用代码使得更改此方法使其工作(或不工作)。我有以下方法。它返回一个Single。有用。执行内部代码,以便remoteDataSourceSingle下载数据,doOnSuccess中的代码运行,我可以在那里设置断点。但是,如果我像第二个示例那样将其转换为可完成的,它就会停止工作。数据未下载,doOnSuccess中的代码从不运行。我想在此方法中将其转换为Completable,因为调用此方法的方法不需要数据,只需要成功/错误结果。知道为什么会这样吗?文档中说Returnsa{@linkCompletable}tha

java - 为什么我的 android 应用程序在调用 Thread.sleep 时跳帧?

我正在编写一个android应用程序,它需要在千分之几秒内显示一些文本,然后再次将其显示为空白。我现在所拥有的是它显示文本,然后使用Thread.sleep,然后将文本设置回null。相反,当我按下按钮时,应用程序会挂起设定的时间,文本永远不会出现,并且logcat显示“跳过xxx帧!应用程序可能在其主线程上做了太多工作。”这是怎么回事,是否有更好的处理方法? 最佳答案 尝试使用可运行的。privateHandlermHandler=newHandler();//codetomaketextappear...mHandler.pos

android - setChoiceMode(ListView.CHOICE_MODE_SINGLE) 如何取消选择?

我有一个ListView,它使用:setChoiceMode(ListView.CHOICE_MODE_SINGLE)因此,当用户单击列表项时,它会显示为选中状态。这工作正常并自动选择项目。注意:当用户点击列表项时,标准操作是更新另一个fragment中的一些内容。但是列表中有些列表项我不想选中。我没有更新内容,而是显示了一个对话框。麻烦的是,当用户摆脱对话框时,项目仍然被标记为选中,这是我不想要的。事实上,我根本不希望它被选中,并保持之前选中的列表项处于选中状态。有没有办法以编程方式选择一个列表项(这样您就可以选择是否将其设置为选中),同时使用CHOICE_MODE_SINGLE因为

android - 如何设置android :networkSecurityConfig only to single flavor

我们从特定的flavor交付发布apk构建(QA)给我们的质量检查团队。我想添加networkSecurityConfig只有那个flavor.为此,我需要将下一个配置添加到list中。...是否可以只将这样的配置添加到QAgradleflavor?阻止关于的答案这对我没有帮助,因为我们将发布版本交付给QA。 最佳答案 当然可以。假设味道是vanilla.在app/src/vanilla/AndroidManifest.xml,有一个元素与你的android:networkSecurityConfig属性,仅此而已。您还可以拥有ne

java - "W/AudioFlinger( 34): write blocked for 70 msecs, 2236 delayed writes, thread "是什么意思?

我有一个monodroid应用程序,它同时播放几个声音,日志中有很多这样的消息。什么意思?W/AudioFlinger(34):writeblockedfor84msecs,2153delayedwrites,thread0xc658W/AudioFlinger(34):writeblockedfor69msecs,2182delayedwrites,thread0xc658W/AudioFlinger(34):writeblockedfor76msecs,2205delayedwrites,thread0xc658W/AudioFlinger(34):writeblockedfor7

android - thread.stop() 异常

我希望当用户打开应用程序播放歌曲时,当歌曲结束时将触发一个新Activity,我放置一个跳过按钮以允许用户停止歌曲并转到下一个Activity,这是代码timer=newThread(){publicvoidrun(){try{sleep(13000);}catch(InterruptedExceptione){//TODO:handleexception}finally{IntentopenStartingPoing=newIntent("com.localizedbasedcompetition.SIGNIN");//action//namestartActivity(openSt

java - 在开始另一个 Activity 之前使用 Thread.sleep(Milliseconds) 等待一下是一种不好的做法吗?

我正在为一个应用程序制作一个SplashScreen...当应用程序启动时,它会启动LoadingActivity...hibernate3秒,finish();然后启动MainActivity。Splash用于更新数据库。如果数据库已经更新,无论如何我都希望飞溅保持3秒。我正在使用以下代码:protectedvoidonPostExecute(Voidresult){super.onPostExecute(result);try{Thread.sleep(3000);}catch(InterruptedExceptione){e.printStackTrace();}finally{

java - Android Thread.start() CalledFromWrongThreadException

我不确定我的低估是否正确,因为我没有得到预期的输出。我有一个类,我在其中调用一个应该启动线程的方法。publicclassMainActivityextendsActivity{protectedvoidonCreate(BundlesavedInstanceState){beginListenForData()}beginListenForData函数是启动一个线程并时常检查是否有数据可供读取。如果是这种情况,它会读取并更新一个UI变量:voidbeginListenForData(){ThreadworkerThread=newThread(newRunnable(){@Overr