Вот что вы могли бы сделать:
function test(n)
A = rand(n, n)
b = rand(n)
end
start_time = time_ns() #Gets current time in nano seconds
seconds = 5000000000 #converted 5 seconds to nano seconds.
@time begin
while time_ns() - start_time <= seconds:
test(1)
end
end
#Note this code is designed to provide the logic of implementing this idea and may or may not work in your case.
Сложная часть, о которой я упомянул в своем комментарии, состоит в том, что все вещи в программировании, основанные на времени, - это наилучшие примеры, а не абсолютные.
См. Некоторые примеры из документов о времени для справки или мой пример ниже:
julia> @time begin
sleep(0.3)
end
0.305428 seconds (9 allocations: 352 bytes)
julia>
Хотя мы и сказали, что хотим поспать 0,3 секунды, это действительноспал в течение ~ 0,305 секунд. Надеюсь, это должно осветить проблему с попытками сделать это.
Это также возможно в зависимости от того, что вы делаете, чтобы использовать потоки. Если вы хотите дать функции 5 секунд, чтобы она возвращала новое значение, вы можете вызвать эту функцию с помощью потока, а затем проверить переменную, которая принимает возвращаемое значение, чтобы увидеть, было ли оно обновлено. Если это не произойдет в течение 5 секунд, вы можете прервать поток или продолжить. Хотя я не уверен на 100% в этом.