小编ian*_*its的帖子

Spinlock与Semaphore

信号量和自旋锁之间的基本区别是什么?

什么时候我们会使用信号量而不是自旋锁?

c c++ unix linux operating-system

112
推荐指数
7
解决办法
7万
查看次数

'ls'命令如何在Linux/Unix中运行?

我想确切地知道"Is"命令在Linux和Unix中是如何工作的.

据我所知,ls forks和exec到linux/unix shell然后得到输出(当前文件树.例如/home/ankit/).我需要一个更详细的解释,因为我不确定调用fork后会发生什么.

任何人都可以详细解释'ls'命令的功能吗?

unix linux open-source operating-system solaris

13
推荐指数
2
解决办法
3万
查看次数

如何在Erlang中搜索列表中的项目?

我正在为公司Use使用缓存生成服务器.我想知道如何从列表中搜索项目,因为我想要搜索比较erlang中的各种数据结构的成本,如dict,orddict,List,元组,树,队列等用于缓存程序.

例:

List = [{"A1",["ankit","sush", "Hover", "x4", "a3","nilesh","mike","erlang" | ...]}|...].
Run Code Online (Sandbox Code Playgroud)

现在,我想搜索Key A1并在列表中搜索"mike".搜索上面列表的最佳方法是什么.

请提供一些例子.Atleast Pseudo for it.

erlang functional-programming

11
推荐指数
2
解决办法
2万
查看次数

是否有可能使用Erlang,Mnesia和Yaws开发强大的Web搜索引擎?

我正在考虑使用Erlang,Mnesia和Yaws开发一个网络搜索引擎.是否有可能使用这些软件制作功能强大且速度最快的网络搜索引擎?它需要做什么以及我该如何开始?

erlang yaws search-engine mnesia web-crawler

6
推荐指数
1
解决办法
3840
查看次数

如何使进程在Erlang中并行运行?

startTrains() - > TotalDist = 100,Trains = [trainA,trainB],PID = spawn(fun() - > train(1,length(Trains))end),[PID!{self(),TrainData,TotalDist} || TrainData < - Trains],在10500 - > refresh end之后接收{_From,Mesg} - > error_logger:info_msg("~n Mesg~p~n",[Mesg]).

所以,我创建了名为trainA,trainB的两个进程.我希望将这些过程递增5,直到达到100.我做了不同的过程,使每个列车(过程)平行增加其位置.但我很惊讶地顺序获得输出,即进程trainA结束然后进程trainB开始.但我想同时增加自己.我想运行这样的流程


trainA 10 trainB 0
trainA 15 trainB 5
....
trainA 100 trainB 100 
Run Code Online (Sandbox Code Playgroud)

但我得到了


trainA 0
....
trainA 90
trainA 95
trainA 100
trainA ends

trainB 0
trainB 5
trainB 10
.....
trainB 100
Run Code Online (Sandbox Code Playgroud)

如何使进程并行/同时运行?希望你得到我的Q. 请帮我.

parallel-processing erlang process

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

如何在 bash shell 脚本中正确处理通配符扩展?

#!/bin/bash

hello()
{
    SRC=$1
    DEST=$2

    for IP in `cat /opt/ankit/configs/machine.configs` ; do
        echo $SRC | grep '*' > /dev/null
        if test `echo $?` -eq 0 ; then
            for STAR in $SRC ; do
                echo -en "$IP"
                echo -en "\n\t ARG1=$STAR ARG2=$2\n\n"
            done
        else
            echo -en "$IP"
            echo -en "\n\t ARG1=$SRC ARG2=$DEST\n\n"
        fi
    done
}

hello $1 $2
Run Code Online (Sandbox Code Playgroud)

上面是我提供源(SRC)和目标(DEST)路径的shell脚本。当我没有放入带有通配符“ ”的 SRC 路径时,它工作得很好。当我运行这个 shell 脚本并给出 ' '.pdf 或 '*' 时,如下所示:

root@ankit1:~/as_prac# ./test.sh /home/dev/Examples/*.pdf /ankit_test/as
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

192.168.1.6
ARG1=/home/dev/Examples/case_Contact.pdf ARG2=/home/dev/Examples/case_howard_county_library.pdf
Run Code Online (Sandbox Code Playgroud)

DEST 是 /ankit_test/as 但 …

unix linux bash shell

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

可以realloc数组,然后为什么使用指针?

这是我面临的就业面试.他们问我们是否可以重新分配阵列,我告诉他们.然后他们问 - 那么为什么我们需要指针,因为大多数人都给出了浪费内存空间的理由.我无法给出满意的答案.如果任何机构能给出任何令人满意的答案,我将不得不承担责任.请提及上述陈述可能相互矛盾的任何情况.

谢谢.

c c++ pointers data-structures

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

如何在Erlang中捕获异常消息?

这是Gen_server未启动时抛出的异常消息.

(ankit@127.0.0.1)32> R11 = system_warning:self_test("SysWarn").
** exception exit: {noproc,
                    {gen_server,call,
                     [system_warning_sup,
                      {start_child,
                       {system_warning_SysWarn,
                        {system_warning,start_link,[{system_warning_SysWarn}]},
                        permanent,10,worker,
                        [system_warning]}},
                      infinity]}}
     in function  gen_server:call/3
     in call from system_warning_sup:'-start_child/1-lc$^0/1-0-'/1
     in call from system_warning:self_test/1
(ankit@127.0.0.1)33> R11.
* 1: variable 'R11' is unbound
Run Code Online (Sandbox Code Playgroud)

现在,我想要做的是捕获此异常消息并放入变量R11(上面显示为未绑定).我想这样做,因为如果gen_sever没有启动,那么我想在收到此消息后开始.我也尝试使用handle_info但不能捕获异常或者可能无法正确实现它.任何人都可以帮我解决这个问题,例如提供一些代码.

erlang exception-handling exception

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

将Context(CDI/servlet)注入新的FutureTask Thread

我发现在servlet donot中创建的新线程包含servlet/CDI上下文.我创建了一个HelloWorld servlet(如下所示)来试验这个问题.在下面的示例中,您将看到我在新的Thread(FutureTask)中运行'doIt()'函数.但是它返回NULL但是当我直接调用'doIt()'方法时,BeanManager不是NULL.

/**
 * Servlet implementation class HelloWorld
 */
@WebServlet("/HelloWorld")
public class HelloWorld extends HttpServlet {
    private static final long serialVersionUID = 1L;

    private static Logger logger = Logger.getLogger(HelloWorld.class
            .getName());

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter writer = response.getWriter();

        writer.println("<html>");
        writer.println("<head><title>Hello World Servlet</title></head>");
        writer.println("<body>");
        writer.println("<h1>Context injection into Thread Experiment</h1>");
        try {
            // 1. This is NOT working
            new Thread(testTask).start();
            testTask.get(5000, TimeUnit.SECONDS);

            // 2. This is working …
Run Code Online (Sandbox Code Playgroud)

java multithreading servlets futuretask cdi

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