小编Vla*_*sny的帖子

Java:停止线程TCP服务器的好方法?

我有以下TCP客户端 - 服务器通信结构:

  • 在服务器启动服务器上启动接受器线程,它接受客户端连接并将ServerSocket传递给它.
  • 当客户端连接到达时,接受者线程调用ServerSocket上的accept()并将客户端处理作业提交给工作线程(通过执行器/线程池)并向其提供客户端套接字.
  • 循环中的Worker从客户端套接字流中读取数据,处理它并发送回复.

问题是如何优雅地停止整个系统?我可以通过关闭ServerSocket来停止接受器线程.它会导致accept()阻塞调用抛出SocketException.但是如何阻止工人呢?他们从流中读取并且此调用正在阻止.根据这个流不会抛出InterruptedException,因此worker不能被中断().

看起来我需要从另一个线程关闭工作套接字,对吗?为此,套接字应该是一个公共字段,或者应该在worker中提供一个方法来关闭它.这会不错?或者可能是我的整个设计有缺陷?

java multithreading concurrent-programming

5
推荐指数
1
解决办法
4789
查看次数

Xcode不支持的架构armv7k

当尝试使用带有xcode 6.2的watchkit验证我的新应用时,我收到一个奇怪的错误:

iTunes Store操作失败.不受支持的体系结构.您的可执行文件包含不受支持的体系结构'[armv7k]'.

armv7k甚至意味着什么?我的所有构建设置(适用于应用和所有扩展程序)与以下屏幕截图中的内容类似: 构建设置 嵌入式二进制文件的红色是否与问题有关?一切都在我的设备和模拟器上运行良好. 在此输入图像描述 提前致谢!

更新:xCode 6.2和iOS 8.2发布.问题仍然存在.

xcode itunesconnect app-store ios

5
推荐指数
1
解决办法
2719
查看次数

Travis-CI:如何在构建之间缓存作曲家可执行文件?

在每个travis构建中,composer self-update运行.它会在每次构建时更新.是否可以缓存作曲家可执行文件,就像我们使用vendordir via一样

cache:
  directories:
    - vendor
    - $HOME/.composer/cache
Run Code Online (Sandbox Code Playgroud)

我考虑缓存整个/home/travis/.phpenv/versions/5.5/bin/composer但我觉得这是不对的,因为这个文件夹的内容可能会改变而不通知缓存系统有关更改(例如travis更新php版本时).

任何建议(当然除了自定义作曲家)?

php travis-ci composer-php

5
推荐指数
1
解决办法
1291
查看次数

使用QQuickImageProvider的正确方法是什么?

我需要动态选择qpixmaps以显示在QML Image项目内部。应该从源qpixmap中裁剪出qpixmaps,我将从QML文件中对其进行设置。我希望在QML的第一个需求下使用C ++代码裁剪它们,并将其缓存以备将来使用。对于动态图像操作,应该从QQuickImageProvider派生我自己的类,并将其加载到QML Application Engine。但是我该如何控制源qpixmap?通过财产?如果是,那么我的自定义提供程序必须从QObject派生,并且其实例应在QML中声明,不是吗?但是,如何才能由引擎加载呢?我认为这种实现方式是错误的,但是哪种方法正确?

UPD:好的,我上了一堂课:

class MyQuickImageProvider : public QQuickImageProvider {
public:
    ...
    // This method should set the source image path
    void setPath ( QUrl path );
    // Overriden method of base class; should return cropped image
    virtual QPixmap requestPixmap ( const QString &id, QSize *size, const QSize &requestedSize );
    ...
}
Run Code Online (Sandbox Code Playgroud)

在main.cpp中,它的加载方式为:

QQmlApplicationEngine engine;
...
engine.addImageProvider("my_quick_image_provider", new MyQuickImageProvider(QQmlImageProviderBase::Image));
Run Code Online (Sandbox Code Playgroud)

我想通过QML更改源图像路径。如何使setPath方法可访问?一种明显的方法是将方法声明为Q_INVOKABLE(并从QObject和qmlRegisterType派生MyQuickImageProvider),但是然后我应该在QML源中声明我的类的实例:

MyQuickImageProvider {
    id: my_quick_image_provider
    ...
}
Run Code Online (Sandbox Code Playgroud)

从main.cpp对其进行访问将存在问题。这样的设计对我来说似乎很奇怪。还有更优雅的解决方案吗?

c++ qt image qml

4
推荐指数
1
解决办法
2276
查看次数

为什么www.example.com/index.php/my/path/here由index.php处理?

我只是很好奇,如何调用apache的功能来指导这样的请求

www.example.com/index.php/my/path/here
Run Code Online (Sandbox Code Playgroud)

到文件index.php?在第一时刻,您可能会认为,如果此请求导致404错误页面是正确的,因为站点根目录下没有名为index.php的文件夹.

顺便说一句,有没有可能关闭这个Apache功能(如果它是一个功能),这样的请求真的最终得到404?

php apache friendly-url

3
推荐指数
1
解决办法
230
查看次数

如何制作三角形截面分隔符

我必须做一个模型的集成。但我想知道是否有办法只在 CSS 中做到这一点。

我们有一个(对角线)三角形部分分隔符,我不知道如何在 CSS 中制作它们(图像或 svg 除外)。如果这甚至可能?

我的分隔符如下所示: 分隔器. (它是该部分顶部的一个巨大的矩形三角形)。

我说的是这里蓝线顶部的部分:

蓝线.

你知道是否可以用 CSS 规则来做到这一点?如果是这样,我该怎么做?

html css integration

2
推荐指数
1
解决办法
4820
查看次数

Android导航抽屉材料设计 - 圆形图像查看个人资料图片

我在材料设计中实现了一个简单的导航抽屉,并将一张个人资料图片放在该抽屉的标题中.此个人资料图片的类型为:de.hdodenhof.circleimageview.CircleImageView

当我在模拟器上运行我的应用程序并打开抽屉时,一旦图像可见,一切似乎都会冻结并缓慢移动.我应该尝试另一种方法来舍入我的ImageView还是我想念一些东西?

(我按照本教程进行了100次查看:http://www.android4devs.com/2014/12/how-to-make-material-design-navigation-drawer.html)

android header material imageview

2
推荐指数
1
解决办法
8615
查看次数

Guzzle:使用Guzzle的Pool下载并行文件:batch()和`sink`选项

您可以使用Guzzle的Pool:batch()方法并行执行http请求.它允许您使用options第三个参数中的键为请求设置默认选项.

但是如果我需要池中不同请求的不同选项呢?我想使用池执行GET请求,并将每个响应流式传输到磁盘上的不同文件.有一个sink选项.但是如何将这个选项的不同值应用于请求?

php guzzle guzzle6

2
推荐指数
1
解决办法
4098
查看次数

将公共代码移动到基类是假设没有的好习惯吗?

我需要打印定期报告和批量报告.我正在使用podofo库.我计划为每个报告使用单独的类,但每个类将需要下面的一些常用函数(现在在另一个项目的一个类中).

int CPdfBatchReport::CalculateMaxRowsInEmptyPage(void)
{
    int rows = MaxPageHeight / PDF_TABLE_STANDARD_ROW_HEIGHT;

    // because the first will always be the column header in every page, we substrct 1 to account for that
    rows = rows - 1;

    return rows;
}

// Calculates the max rows in current page. The current page is determined 
// by the current x, y position
int CPdfBatchReport::CalculateMaxRowsInCurrentPage(void)
{
    float AvailablePageHeight =  pPage->GetPageSize().GetHeight() - PDF_BOTTOM_MARGIN - y;

    int rows = AvailablePageHeight / PDF_TABLE_STANDARD_ROW_HEIGHT;

    // because the first will …
Run Code Online (Sandbox Code Playgroud)

c++ architecture oop code-reuse

2
推荐指数
1
解决办法
632
查看次数

如何将Scrollable标签与Android中的keyline对齐

我使用TabLayout来实现可滚动的选项卡.在材料设计指南(https://www.google.com/design/spec/components/tabs.html#tabs-specs)中,它建议"最左边的标签内容与keyline对齐",图片如下: 在此输入图像描述

我尝试添加属性paddingLeft,但它不对.因此,正如指南所述,我该怎么做才能实现?请帮忙!

android material-design

2
推荐指数
1
解决办法
689
查看次数