小编dri*_*tan的帖子

在componentDidMount上调度一个动作(react/redux)

我是反应/减少的新相对论.因为我想问一个(也许是一个哲学的)问题.

可以在componentDidMount反应组件上调度动作(例如触发api调用)吗?

如果没有,我为什么要在哪里发布行动?

如果是,那么没有其他问题吗?:)

reactjs redux react-redux

20
推荐指数
1
解决办法
9501
查看次数

为什么这个同步块似乎需要很长时间才能锁定?

我是java中的多线程新手,我有一个问题,有些人可能会发现微不足道.

我必须调试第三方代码,我需要一些基本信息,知道在哪里寻找问题,因为代码非常大.

运行以下代码时:

public void method()
{
   long startTime = System.currentTimeMillis();
   synchronized (obj)
   {
      log( "time:" + System.currentTimeMillis() - startTime + " ms" );
      ...
   }
}
Run Code Online (Sandbox Code Playgroud)

我明白了:

11:13:12 - time: 3816 ms
...
11:14:14 - time: 0 ms
Run Code Online (Sandbox Code Playgroud)

为什么需要这么长时间(3816毫秒)才能获得对象的锁定?我应该在哪里看?例如,我想可能的答案是寻找获取"obj"锁定的代码,例如:

synchronized (obj) { ... }
Run Code Online (Sandbox Code Playgroud)

或者是否可能在没有"synchronized"的对象"obj"上进行任何修改也可以锁定对象?

java multithreading android synchronized

12
推荐指数
2
解决办法
1524
查看次数

将 Cordova 迁移到 Capacitor - 错误:包 android.support.v4.content 不存在

我正在尝试将我的离子应用程序从科尔多瓦迁移到电容器。

但是我在 Android 构建中遇到错误。

android\capacitor-cordova-android-plugins\src\main\java\nl\xservices\plugins\FileProvider.java:4: error: package android.support.v4.content does not exist
public class FileProvider extends android.support.v4.content.FileProvider {
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

android cordova cordova-plugins ionic4 capacitor

9
推荐指数
1
解决办法
6679
查看次数

sem_release():无法释放密钥0xc:无效的参数

我正在使用信号量来同步我的应用程序中的某些部分.

在释放信号量(sem_release)时,我收到此警告:

sem_release():无法释放密钥0xc:无效的参数

首先我不知道信号量是否被释放,但由于我没有得到"真实"的结果,我猜它不会释放.

PHP版本:5.6.30

ipcs -V =>来自util-linux 2.25.2的ipcs

这是信号量:

key        semid      owner      perms      nsems 
0x0000000c 4124122    myUser      666        3
Run Code Online (Sandbox Code Playgroud)

这是代码的一部分(类Synchronization):

...
if ( !( $this->semaphoreId = sem_get( $this->id, 1 ) ) )
    throw new RuntimeException( 'Error getting Semaphore.');
...

if ( !sem_acquire( $this->semaphoreId ) )
   throw new RuntimeException( 'Error acquiring Semaphore.');
...
if ( !sem_release( $this->semaphoreId ) )
    throw new RuntimeException( 'Error releasing Semaphore.');
Run Code Online (Sandbox Code Playgroud)

PS我只是在我的生产环境中得到这个错误,而且我无法在我的测试环境中重现/调试.

我在互联网上搜索了这条错误信息,但我一无所获.

有谁知道这个消息是什么意思?

编辑:

  1. 每次运行脚本时都不会显示错误消息.
  2. 我确实得到错误'错误获取信号量'与类似的警告'sem_acquire():无法获取密钥0xc:标识符被删除',但不是在同一时间(天)我得到'错误释放信号量'
  3. 上面的类在整个地方使用不同的键来同步部分应用程序代码.我没有其他任何问题的问题.是的,这个键"12"/"0xc"仅在一个地方和同一个用户使用.
  4. 不应该出现权限问题,因为如果你检查信号量的权限"0xc"是"666"

php semaphore ipcs

8
推荐指数
1
解决办法
340
查看次数